pg_restore --clean 不起作用,因为级联下降

Gab*_*lla 8 postgresql pg-restore

DB-B我正在使用数据库 ( ) 的副本( DB-A),我通过每天运行来保持最新状态:

pg_restore -U postgres -d someDB --clean -j 2 -L WhatToImportList admin.dump
Run Code Online (Sandbox Code Playgroud)

但我开始注意到DB-B表中存在重复记录。经过进一步调查,似乎--clean没有将表删除,DB-B因为它需要对 my 中DB-B但不在 origin 中的其他表和视图进行级联删除DB-A

  1. 是否可以强制导入数据而不进行级联删除?我想保留所有自定义表格、视图和函数!
  2. DB-A如果不是,那么什么是一个好的复制策略,我可以从中导入数据,DB-B但保留分析所需的所有函数、视图和表DB-B

谢谢。

编辑:可能的解决方法:截断每个表,然后导入它们...但我必须在脚本中包含每个表。

Edit2:为了帮助未来的读者,这样可以生成所有必须截断的表的列表:

SELECT 'TRUNCATE ' || table_name || ';'
  FROM information_schema.tables
 WHERE table_schema='my_schema'
   AND table_type='BASE TABLE';
Run Code Online (Sandbox Code Playgroud)