我开始使用PostgreSQL为我的项目建立一个新的数据库。 (顺便说一下,我是PostgreSQL和数据库的新手。)

我认为我的开发工作流程非常糟糕,这是其中的一部分:

  • 使用pgAdmin创建表/ View /函数。
  • 在保存代码之前确定文件的名称。
    目的是能够通过运行所有保存的脚本来自动重新创建数据库,
    由于依赖性原因,我需要知道运行这些脚本的顺序。
    因此,我为每个文件添加一个数字,以指示顺序。
    例如:001_create_role_user.ddl,002_create_database_project.ddl,013_user_table.ddl
  • 保存代码。
  • 使用GIT将文件提交到存储库。

  • 这是我能想到的一些弊端:
  • 我可以轻松忘记所做的更改。例如,创建一个新类型,
    或编辑的评论
  • 很难确定文件的名称(顺序)。
  • 更改代码会很麻烦,尤其是当新
    代码更改顺序。

  • 所以我的工作流程很糟糕。我想知道其他Postgres开发人员的工作流程是什么样的。

    是否有用于编辑和保存脚本的好工具(免费或廉价)?好IDE吗?

    如果我可以为数据库创建自动化的单元测试,那就太好了。

    有用于重建数据库的工具吗? CI服务器工具?

    基本上,我正在寻找数据库开发的任何建议,良好实践或良好工具。

    (很抱歉,此问题可能不适用于问答形式,但我不知道还有什么地方可以问这个问题。)

    最佳答案

    checkout liquibase。我们在我工作的公司中使用它来设置我们的PostgreSQL数据库。它是开源的,易于使用,最终使用的changelog文件可以添加到源代码管理中。每个changeset都有一个ID,因此每个变更集仅运行一次。您最终得到两个额外的表,用于在数据库运行时跟踪对数据库的更改。

    尽管与数据库无关,但是您可以在每个变更集中直接使用PostgreSQL SQL,并且每个变更集都可以拥有自己的注释。

    使用它的唯一警告是,一旦将变更集应用到数据库中,您就必须提醒自己和其他人不要重复使用变更集。对已经应用的变更集的任何更改都会导致不同的校验和(甚至是空格),这可能会导致liquibase中止其更新。这可能会导致该字段中的数据库更新失败,因此,应首先在本地测试对任何变更日志的每次更新。而是将所有更改(无论次要更改)插入具有新ID的新更改集中。他们有一个名为“validCheckSum”的变更集子标签,可以解决此问题,但是我认为最好强制执行始终进行新变更集的操作。

    例如,这是creating a tablecreating a view的文档链接。

    关于database - PostgreSQL开发工作流程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17960955/

    10-11 22:35
    查看更多