我正在尝试使用flask、sqlalchemy 和flask_migrate...
但每次运行manage.py migrate时,alembic总是将我的模型检测为新表。
我想我把表参数在我的模型中将表存储在不同的 postgres 模式中:
class Entry(db.Model):
__table_args__ = {'schema': app.config['BASE_SCH']}
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100))
slug = db.Column(db.String(100), unique=True)
body = db.Column(db.Text)
status = db.Column(db.SmallInteger, default=STATUS_PUBLIC)
created_timestamp = db.Column(db.DateTime, default=datetime.datetime.now)
modified_timestamp = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now)
如果我要删除表参数我的模型线,烧瓶迁移工作正常。将我的表存储在公共 postgres 模式中。
那么,如何在 Flask 中使用不同的 postgres 表模式呢?
Thanks!
终于明白了:有一个include_schemas
配置中的选项必须设置为True
强制 Alembic 在生成迁移之前扫描所有模式。
(稍微)更多细节:http://alembic.zzzcomputing.com/en/latest/api/runtime.html#alembic.runtime.environment.Environment Context.configure.params.include 架构
我并不完全清楚为什么 Alembic/Flask-Migrate 会为非默认模式中的表生成迁移without首先设置此选项...或者更确切地说,它会为非默认模式创建迁移但不会在数据库中发现这些表,这是一个令人惊讶的行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)