我开始使用PostgreSQL为我的项目建立一个新的数据库。 (顺便说一下,我是PostgreSQL和数据库的新手。)
我认为我的开发工作流程非常糟糕,这是其中的一部分:
目的是能够通过运行所有保存的脚本来自动重新创建数据库,
由于依赖性原因,我需要知道运行这些脚本的顺序。
因此,我为每个文件添加一个数字,以指示顺序。
例如:001_create_role_user.ddl,002_create_database_project.ddl,013_user_table.ddl
这是我能想到的一些弊端:
或编辑的评论
代码更改顺序。
所以我的工作流程很糟糕。我想知道其他Postgres开发人员的工作流程是什么样的。
是否有用于编辑和保存脚本的好工具(免费或廉价)?好IDE吗?
如果我可以为数据库创建自动化的单元测试,那就太好了。
有用于重建数据库的工具吗? CI服务器工具?
基本上,我正在寻找数据库开发的任何建议,良好实践或良好工具。
(很抱歉,此问题可能不适用于问答形式,但我不知道还有什么地方可以问这个问题。)
最佳答案
checkout liquibase。我们在我工作的公司中使用它来设置我们的PostgreSQL数据库。它是开源的,易于使用,最终使用的changelog文件可以添加到源代码管理中。每个changeset都有一个ID,因此每个变更集仅运行一次。您最终得到两个额外的表,用于在数据库运行时跟踪对数据库的更改。
尽管与数据库无关,但是您可以在每个变更集中直接使用PostgreSQL SQL,并且每个变更集都可以拥有自己的注释。
使用它的唯一警告是,一旦将变更集应用到数据库中,您就必须提醒自己和其他人不要重复使用变更集。对已经应用的变更集的任何更改都会导致不同的校验和(甚至是空格),这可能会导致liquibase中止其更新。这可能会导致该字段中的数据库更新失败,因此,应首先在本地测试对任何变更日志的每次更新。而是将所有更改(无论次要更改)插入具有新ID的新更改集中。他们有一个名为“validCheckSum”的变更集子标签,可以解决此问题,但是我认为最好强制执行始终进行新变更集的操作。
例如,这是creating a table和creating a view的文档链接。
关于database - PostgreSQL开发工作流程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17960955/