gpt4 book ai didi

postgresql - 在 PostgreSQL 中备份和恢复数据以进行测试的最佳方法

转载 作者:行者123 更新时间:2023-11-29 12:32:53 25 4
gpt4 key购买 nike

我正在尝试将我们的数据库引擎从 MsSql 迁移到 PostgreSQL。在我们的自动化测试中,我们在每次测试开始时将数据库恢复到“干净”状态。我们通过比较数据库的工作副本与干净副本(逐表)之间的“差异”来做到这一点。然后复制任何已更改的记录。或删除任何已添加的记录。到目前为止,这个策略似乎是我们最好的方法,因为每次测试,不会更改很多数据,而且数据库的大小也不是很大。

现在我正在寻找一种方法来基本上做同样的事情,但使用 PostgreSQL。我正在考虑对 PostgreSQL 做同样的事情。但是在这样做之前,我想知道是否有其他人做过类似的事情以及您在自动化测试中使用什么方法恢复数据。

附带说明 - 我考虑过使用 MsSql 的快照或备份/恢复策略。这些方法的主要问题是每次测试后我都必须从应用程序重新建立数据库连接,目前这是不可能的。

最佳答案

如果您可以接受一些额外的存储空间,并且如果您(像我一样)对通过自己的代码检查差异方面的重新发明轮子特别不感兴趣,您应该尝试创建一个新的数据库(根据通过 createdb 的模板功能运行) PostgreSQL 中的命令(或 CREATE DATABASE 语句)。

例如

(from bash) createdb todayDB -T snapshotDB

(from psql) CREATE DATABASE todayDB TEMPLATE snaptshotDB;

优点:

  • 理论上,设计上始终完全相同的数据库(无自定义逻辑)
  • 复制是文件传输(不是数据库恢复)。花费的时间少得多(即不再运行 SQL,不重新创建索引/恢复表等)

缺点:

  • 占用 2 倍的磁盘空间(尽管模板可能位于低性能 NFS 等上)

关于postgresql - 在 PostgreSQL 中备份和恢复数据以进行测试的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35303646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com