问题描述
我有一个包含多个表的数据库,比如 table_a
和 table_b
。
我想使用 pg_dump
备份我的数据库,但是(出于各种原因)我希望每个表都有自己的转储文件。我可以这样做:
$ pg_dump -t table_a -f export_a.sql
$ pg_dump -t table_b -f export_b.sql
但不能保证一致性:修改可能发生在两个转储之间,所以我的两个转储将代表数据库的不同状态,这是不一致的。
我的问题是:有什么方法可以确保这两个转储一致(例如,在同一个事务中或其他东西),或者告诉 pg_dump
输出单个转储的每个表在其自己的文件?
我尝试使用 pg_dump -Fd -Z0
,但输出的 .dat
似乎没有足够的可读性来分隔每个表的信息。
解决方法
没有直接的方法可以做到这一点。我有两个想法:
-
使用所有表的单一“目录格式”
tab[i++] = ++x;
(}
)。确实,将有一个包含所有表元数据的while (i < k);
,但每个表都将转储到其自己的文件中。 -
在目录或自定义格式中使用单个
从中创建单个文件return 1;
以获得所有表的一致转储,然后使用const flattenedOrderProducts = await orderProductsArr.reduce((acc,item) => { return [ ...acc,...Array.from({ length: item.quantity },(_,i) => ({...item,itemsLeft: i + 1})),] },[])