46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
import asyncio
|
|
import subprocess
|
|
from app.multi_tenant.criar_tenant import tenant_create
|
|
from app.database.session import sessionmanager
|
|
from app.config import URL_BD
|
|
|
|
|
|
async def main(nome: str, email: str, password: str, cpf_cnpj: str):
|
|
# Inicializar o gerenciador de sessão
|
|
sessionmanager.init(URL_BD)
|
|
cliente = None
|
|
try:
|
|
print(f"Iniciando a configuração de um novo Cliente '{nome}'...")
|
|
cliente = await tenant_create(nome=nome, email=email, password=password, cpf_cnpj=cpf_cnpj)
|
|
print(f"Cliente '{nome}' criado com sucesso!")
|
|
except Exception as e:
|
|
print(f"Erro ao criar o tenant: {e}")
|
|
finally:
|
|
await sessionmanager.close()
|
|
try:
|
|
print("Iniciando Migrações Alembic das Tabelas do Cliente")
|
|
|
|
default_tenant = subprocess.run(["alembic", "-x", f"tenant={cliente}", "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
|
|
|
|
if __name__ == "__main__":
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser(description="Criar novo tenant")
|
|
parser.add_argument("--nome", required=True, help="Nome do Cliente")
|
|
parser.add_argument("--email", required=True, help="Email do usuário inicial")
|
|
parser.add_argument("--password", required=True, help="Senha do usuário inicial")
|
|
parser.add_argument("--doc", required=True, help="CPF ou CNPJ")
|
|
args = parser.parse_args()
|
|
|
|
asyncio.run(main(nome=args.nome, email=args.email, password=args.password, cpf_cnpj=args.doc,))
|