Ste*_*ven 1 postgresql automated-tests database-migration
我正在尝试将数据库引擎从MsSql迁移到PostgreSQL。在我们的自动化测试中,我们在每次测试开始时将数据库恢复到“干净”状态。我们通过比较数据库的工作副本和干净副本(逐表)之间的“差异”来做到这一点。然后复制所有已更改的记录。或删除任何已添加的记录。到目前为止,这种策略似乎是我们最好的方法,因为每次测试不会更改很多数据,并且数据库的大小也不是很大。
现在,我正在寻找一种基本上可以使用PostgreSQL进行相同操作的方法。我正在考虑对PostgreSQL做完全相同的事情。但是在这样做之前,我想知道是否还有其他人做过类似的事情,以及您使用哪种方法在自动化测试中恢复数据。
附带说明-我考虑过使用MsSql的快照或备份/还原策略。这些方法的主要问题是,每次测试后,我都必须从应用程序重新建立数据库连接,目前无法实现。
如果您可以保留一些额外的存储空间,并且如果您(像我一样)对通过自己的代码检查差异进行重新发明轮子特别不感兴趣,则应尝试通过创建一个新的数据库(每次运行)PostgreSQL 中createdb命令(或CREATE DATABASE语句)的模板功能。
所以例如
(from bash) createdb todayDB -T snapshotDB
Run Code Online (Sandbox Code Playgroud)
要么
(from psql) CREATE DATABASE todayDB TEMPLATE snaptshotDB;
Run Code Online (Sandbox Code Playgroud)
优点:
缺点:
| 归档时间: |
|
| 查看次数: |
640 次 |
| 最近记录: |