import asyncio import subprocess from app.scripts.initialize_permissions import initialize_permissions # Importe a função correta from app.database.session import sessionmanager from app.config import URL_BD def alembic_upgrade(): try: print("Iniciando Migrações Alembic das Tabelas Compartilhadas") shared = subprocess.run( ["alembic", "-x", "special_schema=shared", "upgrade", "head"], check=True, capture_output=True, text=True) print("Migração Alembic das Tabelas Compartilhadas finalizado com sucesso.") print(shared.stdout) print("Iniciando Migrações Alembic das Tabelas Modelo dos Inquilinos") default_tenant = subprocess.run(["alembic", "-x", "tenant=default_tenant", "upgrade", "head"], check=True, capture_output=True, text=True) print("Migração Alembic das Tabelas Modelo dos Inquilinos finalizado com sucesso.") print(default_tenant.stdout) except subprocess.CalledProcessError as e: print("Erro durante Migrações Alembic.") print("Erro na Migração Alembic:") print("Saída padrão (stdout):", e.stdout) print("Erro padrão (stderr):", e.stderr) print("Código de saída:", e.returncode) raise async def main(): try: alembic_upgrade() except Exception as e: print(f"Erro na Migração Alembic: {e}") return # Inicializar o gerenciador de sessão sessionmanager.init(URL_BD) try: # Executar a função para inicializar permissões e papéis await initialize_permissions() finally: # Fechar o gerenciador de sessão await sessionmanager.close() if __name__ == "__main__": # Rodar o script assíncrono asyncio.run(main())