As I know to implement this futer, you should improve sqlite dialogs to change the create_table behavior.
But you can use this quick but ugly solution with "monkeypatching"
# ugly monkeypatch from sqlalchemy.dialects.sqlite.base import SQLiteDDLCompiler old_create_table = SQLiteDDLCompiler.visit_create_table def 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 sql SQLiteDDLCompiler.visit_create_table = new_create_table # end of ugly monkey patch from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import schema, MetaData, Column, Integer metadata = 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()
estin
source share