Postgresql 如何在gitlab中从内部postgres db迁移到外部postgres db

Postgresql 如何在gitlab中从内部postgres db迁移到外部postgres db,postgresql,migration,gitlab,Postgresql,Migration,Gitlab,目前,我们的生产gitlab都在一个docker容器中,使用捆绑的postgres和redis。所以所有的东西都在同一个容器里。我们希望使用外部postgres db和用于redis的单独容器来遵循生产标准 如何从内部postgres db迁移到外部postgres db?如果有人提供的过程和步骤将非常有用。我们对这一进程还不熟悉。如果有人知道,请告诉我们 感谢大家的投入 PRS您可以阅读文章“”,其中包括: 数据库转储/重新加载,使用 注意:YOU也可以使用数据库备份,但前提是外部Pos

目前,我们的生产gitlab都在一个docker容器中,使用捆绑的postgres和redis。所以所有的东西都在同一个容器里。我们希望使用外部postgres db和用于redis的单独容器来遵循生产标准

如何从内部postgres db迁移到外部postgres db?如果有人提供的过程和步骤将非常有用。我们对这一进程还不熟悉。如果有人知道,请告诉我们

感谢大家的投入


PRS

您可以阅读文章“”,其中包括:

  • 数据库转储/重新加载,使用

注意:YOU也可以使用数据库备份,但前提是外部PostgreSQL版本与嵌入式版本完全匹配

  • 设置其密码

    sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD '***' VALID UNTIL 'infinity';"
    
  • 以及修改GitLab配置:

即:

# Disable the built-in Postgres
postgresql['enable'] = false
# Fill in the connection details
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
gitlab_rails['db_host'] = '127.0.0.1'
gitlab_rails['db_port'] = 5432
gitlab_rails['db_database'] = "gitlabhq_production"
gitlab_rails['db_username'] = 'gitlab'
gitlab_rails['db_password'] = '***'
  • 应用巡更更改:

    gitlab-ctl reconfigure && gitlab-ctl restart
    
    • @VonC

      嗨,让我知道我在下面所做的过程

      我们目前有一个docker gitlab容器,它使用捆绑的postgres和redis。为了遵循生产标准,我们正在为我们的产品gitlab维护单独的postgres和redis实例。我们已经在捆绑数据库中有数据。因此,我们使用捆绑的postgres备份了当前gitlab。它生成了.tar文件。接下来,我们将gitlab.rb更改为指向外部post gres db[相同版本]…然后我们可以连接到gitlab,但没有;我看不到任何数据,因为没有任何内容,因为它是新的数据库。后来我们使用外部postgres db进行了恢复…现在我们可以看到所有数据了??我们可以用这种方法吗?现在我们的gitlab连接到外部postgres,我可以看到所有恢复的数据。这个过程有效吗?有什么下降吗


      此过程与pgdump和import有何不同?

      请参阅我在上面给出的答案…此处没有太多空间来评论和解释我的过程。。请看一下,让我知道你的想法。。Thanks@Prs这似乎与我的答案基本相同。这应该行得通。@VonC..我们并没有像文档中解释的那样使用pgdump数据库导出和导入。相反,我们使用了备份和恢复gitlab命令,指向外部db?它们是否都被认为是相同的过程?@Prs仅当嵌入的和外部的PostgreSQL完全相同时。如果没有,转储/重新加载更安全。@VonC,非常感谢!你救了我一天:)
      gitlab-ctl reconfigure && gitlab-ctl restart