64 lines
2.4 KiB
Python
64 lines
2.4 KiB
Python
"""
|
|
Script d'initialisation.
|
|
Crée le schéma et le groupe de démonstration initial.
|
|
Usage: cd /opt/app/backend && venv/bin/python ../deploy/seed.py
|
|
"""
|
|
import asyncio
|
|
import sys
|
|
import os
|
|
|
|
# Ajouter le backend au path
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "backend"))
|
|
|
|
from app.core.database import engine, Base, async_session
|
|
from app.services.admin_database import assurer_sysadmin_instance, initialiser_demo
|
|
# Importer TOUS les modèles pour que create_all crée toutes les tables
|
|
from app.models.groupe import Groupe
|
|
from app.models.membre import Membre
|
|
from app.models.poste import Poste
|
|
from app.models.affectation import Affectation
|
|
from app.models.invitation import Invitation
|
|
from app.models.collecte import Collecte
|
|
from app.models.depense import Depense
|
|
from app.models.reunion import Reunion
|
|
from app.models.presence import Presence
|
|
from app.models.pv_reunion import PvReunion
|
|
from app.models.rotation import Rotation
|
|
from app.models.rapport_rsg import RapportRsg
|
|
from app.models.jeton import Jeton
|
|
from app.models.litterature import Litterature
|
|
from app.models.vente_litterature import VenteLitterature
|
|
from app.models.envoi_contribution import EnvoiContribution
|
|
from app.models.config_repartition import ConfigRepartition
|
|
from app.models.sync_log import SyncLog
|
|
from app.models.proposition import Proposition
|
|
from app.models.operation_bancaire import OperationBancaire
|
|
from app.models.evenement import Evenement
|
|
from app.models.candidature import Candidature
|
|
from app.models.poste_module import PosteModule
|
|
from app.models.reserve import Reserve
|
|
from app.models.transaction_comptable import TransactionComptable
|
|
from app.models.mouvement_reserve import MouvementReserve
|
|
from app.models.destinataire_contribution import DestinataireContribution
|
|
from app.models.instance_admin import InstanceAdmin
|
|
|
|
|
|
async def seed():
|
|
async with engine.begin() as conn:
|
|
await conn.run_sync(Base.metadata.create_all)
|
|
|
|
async with async_session() as db:
|
|
await assurer_sysadmin_instance(db)
|
|
demo = await initialiser_demo(db)
|
|
await db.commit()
|
|
|
|
print("\n═══ Initialisation terminée ═══")
|
|
print(" Groupe: Groupe Démonstration")
|
|
print(f" {demo['message']}")
|
|
print("\n Connectez-vous avec:")
|
|
print(" Identifiant: sysadmin")
|
|
print(" PIN: 0000")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(seed())
|