【问题标题】:How to restore schema and data-only backups from different databases如何从不同的数据库恢复模式和仅数据备份
【发布时间】:2020-01-15 07:39:02
【问题描述】:

我的应用程序安装在几家公司。在其中一个(最新的,最小的数据库)中,我对大多数函数(大约有 80 个函数)和触发器函数(其中大约 10 个)进行了“重大更改”。它在这里工作,这家公司的应用程序适用于新版本,它们很好。但现在我想更新以前公司的应用程序,问题是:我想将这家公司数据库中的旧数据添加到新的数据库模式中。我尝试仅从“新”数据库备份模式,仅从旧数据库备份数据,然后仅通过恢复第一个模式,然后是数据来连接它,但它失败了(外键/触发器等有很多错误)。然后我尝试先恢复模式,然后分别恢复每一个表。它好一点(所有表都有效),但我的备份没有恢复所有数据。这是我的问题:

有什么办法可以做这样的事情吗?一些转储功能仅备份功能和触发功能之类的?

【问题讨论】:

  • 您必须想出一个 DDL 和 DML 语句脚本,将旧数据库模式转换为新模式并保留数据。

标签: postgresql


【解决方案1】:

好的,我终于让它工作了!

首先 - 我像以前一样恢复 SCHEMA-ONLY 备份。

然后我做了一个新的 DATA-ONLY 备份,但在 pgAdmin 上我检查了:

  • 不保存所有者 - 是的,
  • 不保存表空间 - 是的,
  • 不保存权限 - 是的,
  • 不保存未记录的表数据 - 是的,
  • 禁用触发器 - 是的,
  • 禁用 $ 引用 - 是

将此数据备份恢复到之前恢复的架构后,一切正常:)

【讨论】:

    猜你喜欢
    • 2014-04-29
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多