Structuration des commandes de création des tables des bases de données
Plusieurs actions sont menées sur la structure de la base de données
- Initialisation des tables après installation d'enDI (initialisation de la table de migration alembic, création des tables)
- Création des tables (quand un nouveau modèle est ajouté)
- Modification des tables (quand on modifie un modèle existant) ->
endi-migrate config.ini upgrade [--pkg=endi_payment]
- Initialisation des valeurs (populate) ->
endi-admin config.ini syncdb
De plus, plusieurs bases de données peuvent être impliquées (notamment via le module endi_payment).
Pour le 1 et le 2, aujourd'hui on lance metadata.create_all()
systématiquement au lancement d'enDI (et de chaque worker wsgi, donc souvent).
Cette commande (qui crée les tables dans la bdd) devrait être lancée séparément du service endi.
Solution provisoire qui couvrirait 1 et 2 :
endi-admin config.ini initdb
Au démarrage d'une première instance enDI, ou lors d'une mise à jour on lancerait
endi-admin config.ini initdb
endi-migrate config.ini upgrade
endi-admin config.ini syncdb