Сделайте это:
pg_dump -t table1 production_database > /tmp/old_production_database_table1.sql
pg_dump -t table1 devel_database > /tmp/devel_database_table1.sql
psql production_database
truncate table1
\i /tmp/devel_database_table1.sql
\i /tmp/old_production_database_table1.sql
Вы получите много повторяющихся ошибок первичного ключа в секунду \i
, но он будет делать то, что вы хотите: все строки из devel будут обновлены, все строки, не находящиеся в devel, не будут обновлены или удалены.
Если у вас есть какие-либо ссылки на table1, вам придется удалить их до и заново создать после импорта. Особенно проверяйте ссылки on delete cascade
, set null
или set default
на table1 - вы потеряете данные в других таблицах, если они у вас есть.