45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
import subprocess
|
|
import asyncio
|
|
from app.database.session import sessionmanager
|
|
from app.config import URL_BD
|
|
from app.scripts.initialize_permissions_roles import initialize_permissions_roles
|
|
from app.scripts.create_initial_user import create_user
|
|
|
|
|
|
def alembic_upgrade():
|
|
try:
|
|
print("Iniciando Migrações Alembic")
|
|
result = subprocess.run(["alembic", "upgrade", "head"], check=True, capture_output=True, text=True)
|
|
print("Migração Alembic finalizado com sucesso.")
|
|
print(result.stdout)
|
|
except subprocess.CalledProcessError as e:
|
|
print("Erro durante Migrações Alembic.")
|
|
print(e.stderr)
|
|
raise
|
|
|
|
|
|
async def init_bd(user_email: str, user_password: str, user_username: str, user_full_name: str,
|
|
user_is_superuser: bool = False):
|
|
|
|
sessionmanager.init(URL_BD)
|
|
|
|
try:
|
|
print("Inserindo dados iniciais no Banco de Dados")
|
|
# Criando o usuário inicial
|
|
user_id = await create_user(user_email, user_password, user_username, user_full_name, user_is_superuser)
|
|
# Inserindo permissões e papéis
|
|
await initialize_permissions_roles(user_id)
|
|
except Exception as e:
|
|
print(f"Falha na inserção de dados: {e}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# Os dados do usuário podem ser passados como argumentos na linha de comando ou coletados de outra maneira
|
|
email = "admin@sonora.com"
|
|
password = "admin"
|
|
username = "UsuarioAdmin"
|
|
full_name = "Admin"
|
|
is_superuser = True
|
|
|
|
asyncio.run(init_bd(email, password, username, full_name, is_superuser))
|