SQLAlchemy - 用于测试的SQLite和用于开发的Postgresql - 如何移植?

时间:2010-04-26 20:59:45

标签: python sqlite postgresql sqlalchemy

我想在我的所有测试中使用sqlite内存数据库,为我的开发/生产服务器使用Postgresql。

但是两种dbs中的SQL语法都不相同。例如:SQLite有自动增量,Postgresql有序列

将SQL脚本从sqlite移植到postgresql是否容易...你的解决方案是什么?

如果您希望我使用标准SQL,我应该如何在两个数据库中生成主键?

3 个答案:

答案 0 :(得分:19)

我的建议是:不要。 Postgresql的功能远远超出了SQLite所能提供的功能,特别是在日期/数字支持,函数和存储过程,ALTER支持,约束,序列,其他类型如UUID等领域,甚至使用各种SQLAlchemy技巧来尝试平滑过来只会让你稍微进一步。特别是日期和间隔算法在两个平台上完全不同,而SQLite不像PG那样支持精度小数(非浮点)。 PG非常容易安装在每个主要操作系统上,如果你走这条路,生活会更容易。

答案 1 :(得分:11)

不要这样做。不要在一个环境中测试,在另一个环境中发布和开发。你使用这个过程要求有缺陷的软件。

答案 2 :(得分:4)

虽然我们在测试环境中使用sqllite,但我们正在认真考虑为每个开发人员运行postgres。我们有用于构建我们的单元测试运行的测试数据库的脚本,并且我们有一个开发人员使用的“开发”版本。

我们调查了在ramdisk上运行postgres'in memory',但是这个讨论:http://dbaspot.com/forums/postgresql/395602-memory-postgresql-database.html表明它没有必要。

我们还没有遇到任何问题,但它仍然处于开发过程的早期阶段,我们还没有做过任何过于花哨的事情。

zzzeek指出一些可能很快就会惹恼我们的事情:(

Best现在采取行动......