【发布时间】:2011-03-15 19:27:58
【问题描述】:
在复杂的数据库中,Postgres 拒绝更改视图,因为有许多规则,并且许多其他视图都依赖于它。
我可以使用DROP CASCADE 删除视图及其所有依赖项,但之后我将如何重新创建这些视图?这并不容易,因为即使我知道V 和U 都取决于我想要改变的视图,我也不能随心所欲地创建它们。如果视图V依赖于U,我必须先创建V,然后再创建U。
如何跟踪哪些其他视图和规则依赖于某个视图,以便能够以最简单的方式对其进行更改?我还想生成一个脚本,以便每个人都可以使用我的脚本更改视图,有什么简单的方法可以生成吗?
【问题讨论】:
-
将来在版本控制中获取您的对象。这样你至少知道你有什么对象,你可以在一个空的数据库中重新创建它们,然后做一个对象转储,然后你可以做一个 diff 来查看你的 prod 数据库与源代码控制相比有什么或没有什么。这假设您在发布过程中维护您的版本控制系统。
-
我需要更改客户端的实时数据库,我不明白版本控制下的架构如何在这方面帮助我。我可以弄清楚架构。
-
啊,我明白了。我以为这是一个内部数据库系统。
标签: postgresql views