如何在无模型的情况下用SQLAlchemy为SQLite3数据库创建索引?
使用SQLAlchemy实现SQLite索引创建
因为你没有对应的数据模型定义,直接通过SQLAlchemy执行原生CREATE INDEX语句是最直接的方案,逻辑和原生sqlite3实现完全一致,代码如下:
from sqlalchemy import create_engine def index_db(name, tempdb): print(f'{name.ljust(padding)} Indexing file: {tempdb}') if tempdb.endswith('primary.sqlite'): # 创建SQLAlchemy引擎,建立与SQLite数据库的连接 engine = create_engine(f'sqlite:///{tempdb}') # 上下文管理器自动处理连接的开启与关闭 with engine.connect() as conn: # 执行索引创建的原生SQL语句 conn.execute('CREATE INDEX packageSource ON packages (rpm_sourcerpm)') # 提交事务 conn.commit()
关键说明:
create_engine是SQLAlchemy的核心连接入口,SQLite的连接格式为sqlite:///数据库文件路径- 使用
with engine.connect()上下文管理器,无需手动调用close(),会自动释放连接资源 - 执行原生SQL的方式和原生sqlite3完全一致,直接传入索引创建语句即可
内容的提问来源于stack exchange,提问作者Akashdeep Dhar
相关产品推荐
相关产品推荐

