如何在Windows和Linux之间进行模式转储

我有两个系统运行,一个在Linux上,另一个在Windows上运行。 从Linux机器上,我对两个系统都运行pg_dump并转储了模式。

pg_dump命令:

pg_dump -h HOST -U USER -s -f /tmp/out.sql DB_NAME 

在我删除了所有的“ – ”评论之后,我将这些文件分散在一起。

比较输出片断,linux比较windows

 - ADD CONSTRAINT sys_c004775 FOREIGN KEY (ruleid) REFERENCES rule(ruleid); + ADD CONSTRAINT sys_c004775 FOREIGN KEY (ruleid) REFERENCES "rule"(ruleid); 

Linux转储不引用任何实体和窗户。 这是一些编码的function,或只是在Windows和Linux的区别? 在pg_dump中有一个选项可以使输出更加一致吗?

这很奇怪,但是两行都是正确的,并且可以在任何OS上的PostgreSQL数据库中工作。 “规则”不是保留字,但它是PostgreSQL中的对象types。 这可能是为什么一些版本的pg_dump对待这个名称不同的原因。 如果你真的需要不加引号的名字,只要使用别的名字,一个名字,而不会与对象types发生任何冲突。