gpt4 book ai didi

database - 如何自动化 postgres 函数和 View 的导入和导出

转载 作者:搜寻专家 更新时间:2023-10-30 23:15:06 26 4
gpt4 key购买 nike

我有一些项目使用遗留的 PostgreSQL 数据库,它使用 19 个存储过程(函数)和大约 70 个 View 。

现在,我们对实时数据库进行了一些更新,并且随着函数的更改,由于 postgres 的限制,需要删除并重新创建所有函数和 View ,我们花了相当多的时间来做这件事。

是否有一种自动更改 postgress 中的函数和 View 的方法,它会考虑依赖关系并按正确的顺序执行。

我们有基本 View ,然后创建上层 View ......它有点复杂的数据库,至少对我来说 :)

谢谢

最佳答案

我认为最简单的方法是将数据库备份到文本文件:

pg_dump database_name > database_name.pg_dump

它们将处于正确的依赖顺序,否则从备份恢复数据库将很困难。您可以在备份文件中编辑函数和 View 定义,并将其恢复到新数据库。

如果数据库备份文件太大而无法在您的编辑器中进行编辑,从 Postgres 9.2 开始,您可以将其拆分为 3 个部分:

pg_dump --section=pre-data > database_name.1.pg_dump
pg_dump --section=data > database_name.2.pg_dump
pg_dump --section=post-data > database_name.3.pg_dump

您将只编辑第一部分,该部分很小。在旧版本中,您可以使用例如 split效用。

如果您无法承受备份和恢复所需的停机时间,那将变得更加棘手。但我仍然建议使用备份文件。请记住,Postgres 支持事务中的 DDL——如果您在事务中导入函数和 View 并且出现错误,您可以简单地回滚所有更改、进行更正并重试。

关于database - 如何自动化 postgres 函数和 View 的导入和导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15392743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com