flask-migrate想要删除我的索引

0 投票
1 回答
588 浏览
提问于 2025-04-18 10:50

我有一个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似乎总是想删除我的索引。

有没有办法让Alembic的自动生成停留在当前的数据库/模型结构上?

1 个回答

0

查看一下这个页面。你需要在迁移文件夹下修改env.py文件。

EnvironmentContext.configure.include_object 

或者

EnvironmentContext.configure.include_schemas

这应该是你想要的内容。

撰写回答