PostgreSQL 9.3:转储数据库,不包括某些表的数据

Ada*_*tan 7 postgresql-9.3 pg-dump

考虑一个有几十个正常大小的表和一些大表的生产数据库。

我正在pg_dump为我自己的本地笔记本电脑寻找一种方便的方法来访问数据库内容,不包括几个大表。\COPY如果我偶尔需要处理这些表,我可以使用 轻松转储大表的小样本。

如果我使用 --exclude-table=table参数,则大表的架构和数据都将被省略,这会破坏在本地开发环境中期望这些表的查询。

有没有办法转储具有完整模式的数据库,不包括某些给定表的内容

ype*_*eᵀᴹ 12

我认为你需要使用--exclude-table-data=table选项。从文档:

--exclude-table-data=table

不要转储与表模式匹配的任何表的数据。该模式根据与 for 相同的规则进行解释-t--exclude-table-data可以多次给出以排除匹配多个模式中的任何一个的表。即使不需要数据,也需要定义特定表时,此选项很有用,。

要排除数据库中所有表的数据,请参阅--schema-only

  • 提供给 --exclude-table-data (和 --exclude-table)的表是一种模式(https://www.postgresql.org/docs/9.4/app-psql.html#APP-PSQL-PATTERNS)。如果您想排除以“ks_”为前缀的所有内容,请将其写为“ks_*”,其中 * 匹配任何字符的序列 (2认同)