我有一个烧瓶-sqlalchemy 模型:java class MyModel(db.Model): __tablename__ = 'targets' id = db.Column(db.Integer, primary_key=True) url = db.Column(db.String(2048))
java class MyModel(db.Model): __tablename__ = 'targets' id = db.Column(db.Integer, primary_key=True) url = db.Column(db.String(2048))
该表已创建并正在使用中。我想在 url 属性上创建一个索引,所以我将 index=True 传递给它:java url = db.Column(db.String(2048), index=True) 如何在不删除和重新创建表的情况下使该索引生效?
java url = db.Column(db.String(2048), index=True)
给定原始问题的模型类。java class MyModel(db.Model): __tablename__ = 'targets' id = db.Column(db.Integer, primary_key=True) url = db.Column(db.String(2048)) 您不能只添加index=True,因为即使您调用db.Model.metadata.create_all()索引也不会在已创建的表上创建。```javaclass MyModel(db.Model): tablename = ‘targets’ id = db.Column(db.Integer, primary_key=True) url = db.Column(db.String(2048))
mymodel_url_index = Index(‘mymodel_url_idx’, MyModel.url)
if name == ‘main’: mymodel_url_index.create(bind=engine)```
现在engine来自哪里将取决于您的 sqlalchemy 配置,但此代码应该传达需要发生的事情的要点。