2014-06-23 41 views
0

我有一個瓶的應用程序有如下型號:燒瓶遷移想放棄我的indeces

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的自動生成?

+0

請包含您要遷移的命令以及生成的遷移文件。 –

+0

Almebic嘗試刪除您的索引,因爲它沒有在您的ORM模型中指定。您可以通過指定 city_id = db.Column(db.Integer,db.ForeignKey('cities.id'),index = True)來添加索引。 – JRajan

回答

0

檢查this頁面。您將需要更改migrations文件夾下的env.py。

EnvironmentContext.configure.include_object 

EnvironmentContext.configure.include_schemas 

應該是你在找什麼。