Considérez le paramètre suivant:
Lorsque le développement d'une nouvelle fonctionnalité est terminé, je dois mettre à jour manuellement le schéma prod db jusqu'à ce que pg_dump --schema-only
sur les deux DB est identique. Ce processus est sujet aux erreurs et fastidieux.
Je recherche donc un outil qui peut:
diff
). Notez que je ne cherche pas un simple diff textuel du schéma, mais un outil plus élaboré qui peut tirer des conclusions comme "Table X
a une nouvelle colonne Y
".patch
)Existe-t-il un schéma diff / patch outil qui peut m'aider à convertir les schémas de production en schémas de développement plus avancés?
Désolé de ressusciter une ancienne question
Récemment, j'utilise le xDBE DataGrip Outil de gestion de base de données par JetBrains.
Il prend en charge plusieurs moteurs de base de données, dans l'excellent IDE Jetbrains, et une fonctionnalité clé que j'ai trouvée utile est la possibilité de diff
2 tables (DEV et PROD).
Ci-dessous, une capture d'écran du diff en action (dans ce cas, il n'y a qu'une seule différence de colonne). La capture d'écran est le résultat du bouton "Fusionner à droite" en haut, générant le SQL requis pour mettre à jour la bonne table.
J'espère que ce nouvel outil vous aidera.
Utilisez liquibase .
Il prend en charge diff , générant une base de données à partir de zéro, corrigeant une base de données, annulant une base de données et un tas d'autres choses.
Avant, vous deviez tout écrire en XML avec la base de données, mais plus maintenant. Vous pouvez en écrire 99% dans le dialecte SQL de votre choix. Exemple:
--liquibase formatted sql
--changeset neil:1
create table contacts(
contact_id serial primary key,
name text not null unique
);
--changeset neil:2
alter table contacts add column phone_num text;
Vous devriez garder vos changelogs de base de données dans git ou what-have-you.