我有两个系统运行,一个在Linux上,另一个在Windows上运行。 从Linux机器上,我对两个系统都运行pg_dump并转储了模式。
pg_dump命令:
pg_dump -h HOST -U USER -s -f /tmp/out.sql DB_NAME
在我删除了所有的“ – ”评论之后,我将这些文件分散在一起。
- 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发生任何冲突。