擅长:python、mysql、java
<p>给出了模型类的原始问题。</p>
<pre><code>class MyModel(db.Model):
__tablename__ = 'targets'
id = db.Column(db.Integer, primary_key=True)
url = db.Column(db.String(2048))
</code></pre>
<p>不能只添加<code>index=True</code>,因为即使调用了<code>db.Model.metadata.create_all()</code>,也不会在已创建的表上创建索引。</p>
<p>相反,您需要创建一个独立的<code>Index</code>对象,然后创建它。它看起来像这样:</p>
<pre><code>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)
</code></pre>
<p>现在<code>engine</code>的来源取决于您的sqlalchemy配置,但是这段代码应该传达需要发生什么的要点。</p>