【发布时间】:2012-04-09 06:54:22
【问题描述】:
我正在慢慢地从 MSSQL 迁移到 PostgreSQL。
在 MSSQL 中,我可以调用已保存的过程或函数的编辑,并且管理 shell (SQL Server Management Studio) 向我显示过程的文本,因此我不必将其源代码存储在文本文件中的某个位置。
如何以方便的方式对 PostgreSQL 做同样的事情?我正在使用 pgAdmin III。
【问题讨论】:
-
强烈建议将存储过程存储在外部文件中(最好是在版本控制系统中)。
-
@a_horse_with_no_name:我更喜欢不同的方法。对于我进行实验的每个生产数据库集群(不经常复制),我都有一个测试数据库集群。当认为好的时候,我在生产数据库集群中实现。除了通常的备份之外,我还经常运行仅模式备份,尤其是在更改模式之前/之后。传统存储库对数据库模式的使用有限,因为数据不断变化,许多更改无法(轻松)恢复。
-
@ErwinBrandstetter:这种方法的问题在于,您失去了将数据库从版本 x 升级到版本 x+1 需要应用哪些更改的概览。您需要一个可以跟踪每个更改的集中位置(理想情况下映射到问题单)。如果您有多个环境(开发、测试、暂存、验证、回归、预生产、生产),甚至可能有多个生产版本(考虑不同的国家),我不知道您如何跟踪所有没有 VCS 的变化。
-
@a_horse_with_no_name:当然,我的方法有其局限性。如果环境变得更复杂,就像你描述的那样,VCS 可能是合适的。不过,对于大多数用户来说,这应该是一个很好的解决方案。
-
@Ervin - 使用外部文件具有显着的重要优势:VCS,可以使用首选编辑器,更好地组织和注释代码。但是使用您的系统进行部署是个好主意,并且与使用文件建议没有冲突
标签: postgresql stored-procedures stored-functions