SQLAlchemy - 测试使用SQLite,开发使用Postgresql - 如何迁移?
我想在所有测试中使用sqlite的内存数据库,而在开发和生产服务器上使用Postgresql。
但是这两个数据库的SQL语法不一样。例如:SQLite有自增功能,而Postgresql使用序列。
把sqlite的SQL脚本转换到Postgresql容易吗……你有什么解决办法吗?
如果你希望我使用标准SQL,那我应该如何在这两个数据库中生成主键呢?
3 个回答
4
虽然我们一开始在测试环境中使用的是sqllite,但我们现在认真考虑为每个开发者都运行postgres。我们有一些脚本可以建立测试数据库,供我们的单元测试使用,还有一个“开发”版本供开发者使用。
我们曾经考虑过在内存中通过ramdisk运行postgres,但有个讨论指出其实没必要,链接在这里:http://dbaspot.com/forums/postgresql/395602-memory-postgresql-database.html。
到目前为止,我们还没有遇到任何问题,不过开发过程还很早,我们也没有做过什么太复杂的事情。
zzzeek提到了一些可能会让我们困扰的事情 :(
最好现在就做出改变……
20
我建议你不要这样做。Postgresql的功能远远超过SQLite,特别是在日期和数字支持、函数和存储过程、修改支持、约束、序列以及UUID等其他类型方面。即使你用一些SQLAlchemy的小技巧来弥补这些差距,也只能稍微改善一点。特别是在日期和时间间隔的计算上,这两个平台完全不同,而SQLite在精确小数(非浮点数)方面没有像Postgresql那样的支持。Postgresql在每个主要操作系统上都很容易安装,选择它会让你的生活简单很多。
13
别这么做。不要在一个环境中测试,然后在另一个环境中发布和开发。这样做会让你遇到很多软件问题。