但你可以使用这个快速但丑陋的解决方案“monkeypatching”
# ugly monkeypatchfrom sqlalchemy.dialects.sqlite.base import sqliteDDLCompilerold_create_table = sqliteDDLCompiler.visit_create_tabledef new_create_table(*args,**kwargs): sql = old_create_table(*args,**kwargs) # Todo # 1) check table with FTS3 # 2) change sql to CREATE VIRTUAL table ... USING FTS3(tokenizer=...) print 'sql: %s' % sql return sqlsqliteDDLCompiler.visit_create_table = new_create_table# end of ugly monkey patchfrom sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import schema,MetaData,Column,IntegerMetadata = MetaData()Base = declarative_base(Metadata=Metadata) class MyModel(Base): __tablename__ = 'table' ID = Column(Integer,primary_key=True)if __name__ == '__main__': from sqlalchemy import create_engine engine = create_engine('sqlite:///',echo=True) Metadata.bind = engine Metadata.create_all()总结
以上是内存溢出为你收集整理的如何指示SQLAlchemy在create_all()上创建SQLite FTS3表?全部内容,希望文章能够帮你解决如何指示SQLAlchemy在create_all()上创建SQLite FTS3表?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)