【问题标题】:Postgresql - Dump database with x tables - schema only but data from one tablePostgresql - 带有 x 个表的转储数据库 - 仅模式,但来自一个表的数据
【发布时间】:2017-06-09 02:16:05
【问题描述】:

想知道我的atm的一个小问题。

假设我有一个包含可变数量表的数据库,我想要转储该数据库但只转储表结构和一个特定表的数据。

当然,基本上可以这样做,但是命令会很长,而且我必须知道所有的表。

但是我需要一个命令而不知道名称或有多少其他表,只有我想要的数据应该相关的一个表,其他基本上只是牛,最后我想拥有这一切都在一个文件中。

期待阅读有关如何解决我的问题的一些建议或一些指示。真的很好奇:)

【问题讨论】:

    标签: database postgresql schema pg-dump


    【解决方案1】:

    默认的pg_dump 输出格式是psql 脚本,因此您可以将它们连接起来:

    pg_dump -d my_db --schema-only > dump.sql
    pg_dump -d my_db -t my_table --data-only >> dump.sql
    

    【讨论】:

    • 没错,这是相当明显的解决方案。无论如何,谢谢,但主要是我希望通过更详尽的解决方案获得一些关于 postgresql 的经验。但当然,我也在寻找,最好是简短而简单的解决方案来解决我的问题。连接很好并且有效,但我更喜欢单线;)
    • @Doeyo: 好吧,你可以用{pg_dump...; pg_dump...} > dump.sql 把它塞进一行... 除了pg_dump--schema-only,Postgres 没有提供任何导出数据库结构的方法和--data-only 选项是互斥的,所以我认为这很简单。
    • 但是如果你想要一些“精心制作”的东西,这里有一些可怕的东西......你可以build a temporary database which matches your desired output,或suppress dumping of other tables via row security policies。请不要在您真正关心的任何系统上运行其中任何一个:)
    • 是的,我已经想到了互斥性,这就是让我问这个问题的真正原因。感谢您的链接,我不会运行这些,但它们看起来有点有趣,所以我会抽出一些时间来检查它们。我现在要采用的解决方案是串联,因为它似乎是最合理的一个,而且无论如何它只是获得一组测试数据的临时解决方法。但这是一次有趣的学习经历,非常感谢。
    • 如果我以压缩格式(使用 -Fc)进行转储,我可以进行这种连接吗?
    猜你喜欢
    • 1970-01-01
    • 2017-07-15
    • 2010-11-25
    • 2013-03-25
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多