Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Configurando __tablename__ dinamicamente para fragmentação no SQLAlchemy?


OK, fomos com a declaração SQLAlchemy personalizada em vez da declarativa.

Então, criamos um objeto de tabela dinâmica como este:
from sqlalchemy import MetaData, Table, Column

def get_table_object(self, md5hash):
    metadata = MetaData()
    table_name = 'table_' + md5hash
    table_object = Table(table_name, metadata,
        Column('Column1', DATE, nullable=False),
        Column('Column2', DATE, nullable=False)
    )
    clear_mappers()
    mapper(ActualTableObject, table_object)
    return ActualTableObject

Onde ActualTableObject é o mapeamento de classe para a tabela.