Есть ли способ динамически генерировать модель БД на основе столбцов в таблице базы данных для Flask SQLAlchemy?
У меня есть приложение для отображения данных из таблицы базы данных, но имя столбца будет время от времени меняться и нарушать работу моего приложения. Я хотел бы иметь способ динамически генерировать модель данных на основе фактических имен столбцов в базе данных.
В настоящее время я явно объявляю все столбцы, как показано ниже.
class MyDbModel(db.Model):
__tablename__ = 'my_table'
id = db.Column('id', db.NVARCHAR(length=300), primary_key=True)
name= db.Column('name', db.NVARCHAR(length=300),
nullable=True)
Я не очень знаком с sqlalchamy, я пробовал следующее, но получаю ошибку, как показано ниже, и я не уверен, что это правильный способ сделать это.
could not assemble any primary key columns for mapped table
from sqlalchemy import Table, Column
from sqlalchemy.orm import mapper
db = SQLAlchemy()
class MyDbModel(db.Model):
__tablename__ = 'my_table'
def __init__(self):
#helper function to get column headers of a db table
table_cols = get_headers_or_columns(
'my_table'
)
t = Table(
'my_table', db.metadata,
Column('id', db.NVARCHAR(length=300), primary_key=True),
*(Column(table_col, db.NVARCHAR(length=300)) for table_col in table_cols)
)
mapper(self, t)
Любая помощь приветствуется!