【发布时间】:2014-07-03 11:16:03
【问题描述】:
我的所有表类都是为 mssql 编写的,但现在我想在本地测试我的应用程序,所以我需要 sqlitedb。有没有一种方法可以在 sqlite 中复制我的数据库。 我面临一些问题,例如 sqlite 不支持将 Float 作为主键。我有 200 多个表,我不能为了测试而去编辑所有表。我可以将所有表放在一个元数据中。 我的想法是仅将 sqlite 用于测试和生产,我仍将使用 mssql。 请注意,我将 Float 更改为 Integer,但仍然没有创建我的表,而是创建了一个空数据库。 我的代码 对于 metadata.tables 中的表:
keys_to_change = []
for pkey_column in metadata.tables[table].primary_key.columns.keys():
keys_to_change.append(pkey_column)
for data in list(metadata.tables[table].foreign_keys):
keys_to_change.append(data.column.name)
for column in metadata.tables[table].columns:
if column.name in keys_to_change:
if str(column.type) == 'FLOAT':
column.type = INTEGER
engine = create_engine('sqlite:///mytest.db', echo=True, echo_pool=True)
metadata.create_all(engine)
【问题讨论】:
-
使用与生产环境不同的数据库系统测试代码不是一个好主意,功能差异很可能会太大。我建议找到一种使用 MS SQL Server 进行测试的方法。
-
测试人员正在使用 mssql 对其进行测试,但最终我只想复制数据库并执行一些功能测试。
标签: sqlite sqlalchemy dbmigrate