使用SQLAlchemy克隆测试数据库

时间:2014-12-17 12:16:42

标签: python flask sqlalchemy

我有一个现有的数据库。该数据库通过Django应用程序进行管理。 在Flask应用程序中,使用相同的数据库通过Sqlalchemy模型填充 automap_base

db = SQLAlchemy(app)
Base = automap_base()
engine = create_engine('postgresql+psycopg2://user@localhost/database')
Base.prepare(db.engine, reflect=True)

现在我正在尝试设置测试数据库,该数据库将使用相同的 Base 对象创建:

test_engine =create_engine('postgresql+psycopg2://user@localhost/test-database')
Base.metadata.create_all(test_engine)

因此,Sqlalchemy创建表和索引:

2014-12-17 16:23:18,499 INFO sqlalchemy.engine.base.Engine CREATE UNIQUE INDEX core_city_name_key ON core_city (name)
2014-12-17 16:23:18,499 INFO sqlalchemy.engine.base.Engine {}
2014-12-17 16:23:18,501 INFO sqlalchemy.engine.base.Engine COMMIT
2014-12-17 16:23:18,502 INFO sqlalchemy.engine.base.Engine CREATE UNIQUE INDEX core_city_name_key ON core_city (name)
2014-12-17 16:23:18,502 INFO sqlalchemy.engine.base.Engine {}
2014-12-17 16:23:18,503 INFO sqlalchemy.engine.base.Engine ROLLBACK

您可以看到索引创建已执行两次并影响错误:

ProgrammingError: (ProgrammingError) relation "core_city_name_key" already exists

我做错了什么?

0 个答案:

没有答案