Из документов я вижу, как создавать модели, необходимые для последующего создания таблиц.
Я хочу создать различные таблицы, каждая с разным __tablename__
атрибутом, но все они с одинаковыми свойствами, поэтому необходим только один класс Model, который будет служить моделью для всех таблиц.
Я посмотрел на параметр db.metadata, но в документации указано, что он предназначен только для чтения.
EDIT1:
Чтобы создать таблицу из модели, я создаю
class Sample(db.Model):
//code here
затем для создания таблицы из модели запускается скрипт, который выполняет
manage.py migrate
manage.py update
Каков будет правильный способ создания упомянутых таблиц во время выполнения?
EDIT2:
Найдя вопрос по SO , похожий на мой, я попробовал принятый ответ, в котором предлагается использовать type
для создания таблиц, но, похоже, он работает не так, как ожидалось.
В моем файле app/my_model.py
есть модель, которая сначала унаследована от db.Model, но позже удалила ее, следуя примеру из упомянутого вопроса. В моем app/routes.py
, когда я запускаю type(name.title(), (MyModel, db.Model), { '__tablename__' : name })
и печатаю данный объект, я получаю <class 'app.routes.name'>
, в отличие от ожидаемого <class 'flask_sqlalchemy.Name'>
.
Я опубликовал отдельный вопрос, потому что сомнение шире, чем то, что охватывает существующий вопрос, я думаю.
Заранее спасибо!