我有一个包含大约 85 个以上表的 postgresql 数据库。我定期使用pg_dump
(通过 php-pgadmin)在复制模式下,备份文件的大小几乎为 10-12 MB。现在我面临的问题是,每当我尝试恢复数据库时,都会出现外键约束问题。场景如下:
有两个表:1)users
and 2) zones
。我已将区域 id 存储在users
表来识别用户的区域并将其设置为外键。
当我进行数据库转储时,表的条目zones
仅在 table 之后出现users
。我认为这是由于表名的第一个字母造成的:u
出现在之前z
,因此当我恢复数据库时,出现外键约束问题,执行停止。当我尝试恢复数据库结构时,出现同样的问题,它说表zones
数据库中不存在,因为结构zones
之后是users
在转储文件中。
有什么解决办法吗?还有其他可行的备份方法吗?
我发现你可以在 sql 的开头添加(这将停止外键检查):
SET session_replication_role = replica;
最后(恢复检查):
SET session_replication_role = origin;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)