当前位置: 首页 > 面试题库 >

Postgres pg_dump每次都以不同的顺序转储数据库

夹谷宜民
2023-03-14
问题内容

我正在编写一个PHP脚本(它也使用linux bash命令),将通过执行以下操作在测试用例中运行:

我正在使用PostgreSQL数据库(8.4.2)…

1.)创建一个数据库2.)修改数据库3.)存储数据库的数据库转储(pg_dump)

4.)通过执行步骤1.)和2.),进行回归测试,然后进行另一个数据库转储,并将其(diff)与步骤3.)中的原始数据库转储进行比较。

但是,我发现pg_dump不会总是以相同的方式转储数据库。每次都会以不同的顺序转储事物。因此,当我对两个数据库转储进行比较时,比较将导致两个文件实际上是相同的,只是顺序不同而不同。

我可以采用其他方法来进行pg_dump吗?

谢谢!


问题答案:

强制pg_dump以任何特定顺序转储数据是不可能的,因为它以磁盘顺序转储数据-这种方式要快得多。

您可以对pg_dump使用“ -a
-d”选项,然后对输出进行“排序”,但是数据中的换行符将使排序后的输出不可用。但是对于基本的比较,无论有什么变化,都足够。



 类似资料:
  • 查询:{“explain”:true,“size”:500,“Query”:{“query_string”:{“query_string”:{“query_string”:“((names.name:(BANK AMERICA\\)”)^50或(names.name:(BANK AMERICA\))^30或(name_pair:\“BANK AMERICA\\\)^30或(name_name:(B

  • 我在努力打字 当我保存一个实体时,有时我的数据会更新,有时不会。完全相同的请求第一次不会起作用,但第二次会起作用。我使用保存()更新和插入。插入时一切都好。 以下是我的代码(使用NestJS键入表单): == == == == 当我在save()之后找到()时,我的用户地址不会更新,而我从Mongo收到了modifiedCount 1。如果我重复这个请求,这一次它是有效的。。。 有什么想法吗?

  • 我需要生成加密安全、随机和唯一的字符串,每个字符串实际上都将用作访问令牌。为此,我计划使用Java的类。但是,我不确定SecureRandom是否保证唯一性。换句话说,SecureRandom在生成的每一次都会产生不同的值吗? 用值(即)创建实例似乎可以工作。但是,我不确定。此外,这个答案指出种子既不安全也不可移植。种子值符合我的目的吗? 如果你有其他建议,我也想听听。

  • 问题内容: 我在尝试计算字符串的md5哈希值时遇到了一些非常奇怪的行为。如果我传递的是串联结果,则返回的哈希值总是错误的(且与众不同)。获得真正的哈希的唯一方法是传递创建后未进行任何修改的字符串。 我想念什么吗? 问题答案: 您缺少的是 不会替换散列数据 。您将不断更新哈希对象,因此您将获得 串联字符串 的哈希值。从文档中: 使用字符串 arg 更新哈希对象。 重复调用等效于将所有参数串联在一起的

  • 主要内容:多维数组查找指定元素数组作为一种 线性存储结构,对存储的数据通常只做查找和修改操作,因此 数组结构的实现使用的是顺序存储结构。 要知道,对数组中存储的数据做插入和删除操作,算法的效率是很差的。 由于数组可以是多维的,而顺序存储结构是一维的,因此数组中数据的存储要制定一个先后次序。通常,数组中数据的存储有两种先后存储方式: 以列序为主(先列后行):按照行号从小到大的顺序,依次存储每一列的元素 以行序为主(先行后序):按

  • 如何在每次运行程序时以随机顺序生成0,1,2,3(甚至整数),不重复? 如在,运行这个for循环:for(int x=1; x 我被要求使用math.random,但我无法解决这个问题。最接近的是: 这永远不会给我第一个数字,因为它只有1-4,我相信当它超过4时会给我一个错误。 期望的输出是四首歌曲中的每一首每次都以随机顺序打印一次。