gpt4 book ai didi

python - 创建表后向 SQLAlchemy 模型添加索引

转载 作者:IT老高 更新时间:2023-10-28 20:21:33 26 4
gpt4 key购买 nike

我有一个 flask sqlalchemy 模型:

class MyModel(db.Model):
__tablename__ = 'targets'
id = db.Column(db.Integer, primary_key=True)
url = db.Column(db.String(2048))

该表已创建并正在使用中。我想在 url 属性上创建一个索引,所以我将 index=True 传递给它:

url = db.Column(db.String(2048), index=True)

如何在不删除重新创建表的情况下让这个索引生效?

最佳答案

给定原始问题中的模型类。

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(),也不会在已创建的表上创建索引。

相反,您需要创建一个独立的 Index 对象,然后再创建它。它看起来像这样:

class 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 配置,但此代码应该传达需要发生的事情的要点。

关于python - 创建表后向 SQLAlchemy 模型添加索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com