PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Séquence de clé primaire PostgreSQL perdue après la migration à l'aide d'AWS DMS

Après que @a_horse_with_no_name m'ait orienté dans la bonne direction et ait discuté avec AWS, je suis en mesure de répondre à ma propre question, du moins si vous utilisez AWS Database Migration Service (DMS).

Le problème est que DMS se concentre uniquement sur les données elles-mêmes et pas vraiment sur le schéma (ce qui me semble être un oubli majeur, surtout si vous utilisez la même technologie de base de données mais c'est un autre problème). Ainsi, le schéma lui-même n'est pas migré. La documentation ne le précise pas vraiment.

Pour résoudre ce problème :

  1. Arrêter (si elle existe toujours) la migration AWS DMS existante
  2. Supprimer la base de données migrée existante et créer un nouveau schéma vide à utiliser
  3. Suivez les étapes ici https://docs.aws. amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html pour installer et configurer Amazon Schema Conversation Tool (SCT)
  4. Une fois que vous êtes connecté aux deux bases de données, suivez les étapes ici https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html pour "convertir" votre schéma (j'ai fait tout le schéma "public" de cette base de données pour m'assurer que tout est couvert
  5. Créez ou modifiez votre migration AWS DMS, en vous assurant que Target Table Preparation Mode ="TRUNCATE" et désactivez les clés étrangères sur la base de données cible. En cas de modification, assurez-vous que lorsque vous êtes invité à "RESTART", ne pas reprendre

Ce que je n'ai pas encore testé, c'est comment gérer le fait que je migre une base de données en direct. Ainsi, les séquences peuvent être obsolètes sur la base de données cible lorsque la migration est effectuée. Je crois que je peux juste plus tard entrer dans SCT et ne migrer que les séquences, mais je n'ai pas encore testé cela.