【问题标题】:flask-migrate wants to drop my indecesflask-migrate 想要删除我的索引
【发布时间】:2014-06-23 23:01:22
【问题描述】:

我有一个具有以下模型的 Flask 应用程序:

class User(db.Model, UserMixin):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(64), unique=True, index=True)
    password_hash = db.Column(db.String(128))
    city_id = db.Column(db.Integer, db.ForeignKey('cities.id'))

class City(db.Model):
    __tablename__ = 'cities'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), nullable=False)
    user_ids = db.relationship('User', backref='city', lazy='dynamic')

我已运行迁移以指定我的索引和外键约束:

def upgrade():
    op.create_foreign_key('fk_user_city', "users", "cities", ["city_id"], ["id"])
    op.create_index('city_idx', 'users', ['city_id'])

但是,每当我创建另一个新迁移时,Alembic 似乎都想删除我的索引。

有没有办法在当前的 DB/Model 模式下冻结 Alembic 的自动生成?

【问题讨论】:

  • 请包含您要迁移的命令,以及生成的迁移文件。
  • Almebic 尝试删除您的索引,因为它没有在您的 ORM 模型中指定。您可以通过指定 city_id = db.Column(db.Integer, db.ForeignKey('cities.id'), index=True) 添加索引

标签: python flask alembic flask-migrate


【解决方案1】:

查看this 页面。您将需要更改迁移文件夹下的 env.py。

EnvironmentContext.configure.include_object 

EnvironmentContext.configure.include_schemas

应该是你要找的。​​p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2016-05-02
    • 1970-01-01
    • 2021-08-04
    • 2015-08-04
    相关资源
    最近更新 更多