【问题标题】:Postgres: Dump schema-only but leave data intact for a few tablesPostgres:仅转储模式,但保留几个表的数据完整
【发布时间】:2017-07-15 21:05:06
【问题描述】:

我有一个包含大约 300 个表的数据库,我想只转储模式。需要注意的是,我还想保留大约 12 个表。例如我有一个名为 country 的表,其中包含我想保存在转储中的国家/地区名称。

我怎样才能做到这一点?

【问题讨论】:

    标签: database postgresql pg-dump


    【解决方案1】:

    首先转储架构:

    pg_dump -s -d dbname > /home/username/schema.sql
    

    转储下一个你想要数据的表:

    pg_dump -a -d dbname -t table1name -t table2name -t table3name > /home/username/data.sql
    

    然后要在新服务器上恢复,以相同的顺序运行文件(首先使用模式)。

    psql -U user -d dbname -f /home/username/schema.sql
    psql -U user -d dbname -f /home/username/data.sql
    

    如果需要,您还可以将第二个转储(数据)附加到第一个(模式)上,以创建一个大文件以使用 >> 而不是 > 进行恢复。不过,您仍然需要运行两个 pg_dump 命令来执行此操作。

    例如:

    pg_dump -s -d dbname > /home/username/full.sql
    pg_dump -a -d dbname -t table1name -t table2name -t table3name >> /home/username/full.sql
    psql -U dbuser -d dbname -f /home/username/full.sql
    

    【讨论】:

    • 这会创建两个转储文件吗?
    • 会的。我用将其保存到文件的示例更新了答案。
    猜你喜欢
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多