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

我使用的是PostgreSQL数据库(8.4.2).

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

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

然而,我发现pg_dump并不总是以同样的方式转储数据库.它每次都会以不同的顺序倾倒东西.因此,当我对两个数据库转储进行差异时,比较将导致两个文件不同,而实际上它们是相同的,只是顺序不同.

有没有不同的方法可以开始进行pg_dump?

谢谢!

推荐答案

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

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

Database相关问答推荐

删除Postgres中的JSONB列并在不停机的情况下回收空间

如何在 N1QL 查询(Couchbase 查询)中使用 LENGTH() 字符串函数

用于存储人与聊天消息的数据库设计

如何使用存储在数据库表中的属性配置 Spring bean

SQL 查询至少其中一项

在sql server中拆分字符串

如何在我的 Rails 应用程序中避免竞争条件?

递归关系的数据库设计

在 MySQL 中创建表时如何定义列的默认值?

在不稳定的网络中保持分布式数据库同步

为什么 DynamoDB 查询中没有**not equal**比较?

Membase 和 Couchbase 有什么区别?

JavaScript 布尔搜索查询生成器接口库?

Slick 3.0 在数据库驱动程序级别是reactive/asynchronous的吗?对于哪些数据库?

Hibernate如何连接多个数据库

EF4 代码优先导致 InvalidOperationException

数据完整性和数据一致性之间有什么区别吗?

Fluent NHibernate 的类映射生成器

唯一(多列)并且在一列中为空

无需安装的轻量级 SQL 数据库