- Primeiro usar a copia do arquivo ou criar uma migração vazia alembic revision -m "Criar tabelas do schema shared" se usar a cópia do arquivo os outros passo são desnecessários - Ajustar imports da migração from typing import Sequence, Union from alembic import op import sqlalchemy as sa import fastapi_users_db_sqlalchemy from sqlalchemy import MetaData, schema from app.database.models import Base - Incluir a função para filtra os shcemas shared para criar apenas eles def get_shared_metadata(): """Filtra as tabelas do schema 'shared'.""" meta = MetaData() for table in Base.metadata.tables.values(): if table.schema != "tenant": # Filtra apenas as tabelas do schema 'shared' table.to_metadata(meta) return meta - Ajustar função upgrade """Criação do schema 'shared' e tabelas associadas.""" conn = op.get_bind() # Criar o schema 'shared' se não existir schema_exists_query = sa.text( "SELECT schema_name FROM information_schema.schemata WHERE schema_name = 'shared';" ) result = conn.execute(schema_exists_query) schema_exists = result.scalar() is not None if not schema_exists: op.execute(schema.CreateSchema("shared")) print("Schema 'shared' criado com sucesso.") # Criar as tabelas do schema 'shared' metadata = get_shared_metadata() metadata.create_all(bind=conn) # Cria as tabelas do shared print("Tabelas do schema 'shared' criadas com sucesso.") - Ajustar função downgrade """Remoção do schema 'shared' e tabelas associadas.""" conn = op.get_bind() # Remover as tabelas do schema 'shared' metadata = get_shared_metadata() metadata.drop_all(bind=conn) print("Tabelas do schema 'shared' removidas com sucesso.") # Remover o schema 'shared' op.execute("DROP SCHEMA IF EXISTS shared CASCADE") print("Schema 'shared' removido com sucesso.")