Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
informatique:versionnement_dev_bdd [2022/06/14 16:03] – [Mise en pratique] bertrand | informatique:versionnement_dev_bdd [2022/09/08 11:37] (Version actuelle) – [Mise en pratique] bertrand |
---|
| |
===== Déploiement en "production ===== | ===== Déploiement en "production ===== |
Une fois le développement et les tests finaliser localement, il suffit de les exécuter sur le serveur de production, soit via DBeaver s'il a accès à la base de données, soit via la CLI… par exemple :\\ | Une fois le développement et les tests finalisés localement, il suffit de les exécuter sur le serveur de production, soit via DBeaver s'il a accès à la base de données, soit via la CLI… par exemple :\\ |
<code bash>docker exec -i nom_du_conteneur /bin/bash -c "psql -U mon_db_user -d nom_de_la_base" < mon_chemin/mon_script_de_migration.sql</code> | <code bash>docker exec -i nom_du_conteneur /bin/bash -c "psql -U mon_db_user -d nom_de_la_base" < mon_chemin/mon_script_de_migration.sql</code> |
| |
On applique ce script : | On applique ce script : |
<code bash> | <code bash> |
docker exec -i tutorial /bin/bash -c "psql -U postgres" < database/1_create_schema_and_fist_table.sql | docker exec -i tutorial /bin/bash -c "psql -U postgres -d tutorial" < database/1_create_schema_and_first_table.sql |
</code> | </code> |
On peut vérifier avec DBeaver ou psql que la base/schéma/table ont bien été créé. TODO pourquoi je retrouve mon schéma dans la base POSTGRES et non tutorial ?? | On peut vérifier avec DBeaver ou psql que la base/schéma/table ont bien été créé. Dans la commande ci-dessus, l'option //-d tutorial// qui permet de préciser la base de données contenant le schéma est importante sinon on retrouve le schéma dans la base POSTGRES et non tutorial ! |
| |
On commence notre versionnement : | On commence notre versionnement : |
<code bash> | <code bash> |
git init # inutile si associé à un projet existant qui est déja versionné | git init # inutile si associé à un projet existant qui est déja versionné |
git add 1_create_schema_and_fist_table.sql | git add 1_create_schema_and_first_table.sql |
git commit -m "init et ajout du schema initial" | git commit -m "init et ajout du schema initial" |
</code> | </code> |
On peut faire aussi une copie de //1_create_schema_and_fist_table.sql// vers //tutorial_location.sql//. Les fichiers //1_//, //2_// (ou un préfixe de date AAAAMMJJ) ne contiendront que les scripts de migration (et n'évolueront donc pas), en revanche le fichier //tutorial_location.sql// pourra recevoir régulièrement un export complet de la base et servir ainsi à un nouveau développeur (qui pourrait repartir d'un dump de sauvegarde pour avoir des données avec) | On peut faire aussi une copie de //1_create_schema_and_first_table.sql// vers //tutorial_location.sql//. Les fichiers //1_//, //2_// (ou un préfixe de date AAAAMMJJ) ne contiendront que les scripts de migration (et n'évolueront donc pas), en revanche le fichier //tutorial_location.sql// pourra recevoir régulièrement un export complet de la base et servir ainsi à un nouveau développeur (qui pourrait repartir d'un dump de sauvegarde pour avoir des données avec) |
| |
===== Modification du modèle ===== | ===== Modification du modèle ===== |