建立索引我想建立基本上看起來像這樣在SQL索引:SQLAlchemy的:聲明ORM - 使用GIST和TSRANGE
CREATE INDEX IF NOT EXISTS new_index ON schema.tablename USING gist (tsrange(start, "end"))
凡我聲明ORM模型看起來是這樣的:
import sqlalchemy as sa
class Tablename(Mixins):
__table_args__ = (
sa.Index('index_name', postgresql_using="gist"), # ????
{'schema': 'schema'}
)
start = sa.Column(pg.TIMESTAMP, autoincrement=False, primary_key=True)
end = sa.Column(pg.TIMESTAMP, nullable=False)
後來,我想用alembic
,其中應包括降級,例如:
op.drop_index('index', 'tablename', schema='schema')
有效地具有以下SQL:
DROP INDEX IF EXISTS schema.index
這是什麼問題?你在尋找[如何定義一個函數索引](http://docs.sqlalchemy.org/en/latest/core/constraints.html#functional-indexes)? –
我不知道我有足夠的知識來問正確的問題。在__table_args__中,我有一個'#????'。我想我需要按摩那條線來產生我想要的sql。我只是不知道去哪裏尋找什麼,或者什麼命名是爲sqlalchemy找到它的。定義一個函數可能是正確的,但從文檔中可以看出,如何將所有內容混合在一起(postgres GIST,TSRANGE,SQLAlchemy Index,SQA功能索引等)並不明顯 –
您可以運行以下https:// stackoverflow .com/questions/42153301/flask-sqlalchemy-lower-case-index-skipping-functional-not-supported-by-sqlalc with alembic。 –