【问题标题】:How to migrate schemas in postgresql from local server to production server?如何将 postgresql 中的模式从本地服务器迁移到生产服务器?
【发布时间】:2016-04-08 21:11:58
【问题描述】:

我在本地 postgres 服务器上创建了一个数据库、一些表和存储过程。现在我想自动将这些东西迁移到我的生产服务器,而无需再次从头开始创建所有内容。这应该是非常直接的事情,但是我没有找到任何试图解释这一点的书籍。所以我想知道它是如何实现的?有人可以提供一些教程链接吗?谢谢!

【问题讨论】:

  • 你的意思是在本地数据库中创建表和过程到生产数据库,不需要复制表中的数据,对吧?和 Juts 确认两个数据库都是 PostgreSQL,不是吗?
  • @wingedpanther 是的,只是模式。
  • 您使用了错误的进程。将您所做的每项更改都放入 (SQL) 脚本中,然后将这些脚本存储在版本控制系统中。当您部署到生产环境时,请在生产环境中运行这些迁移脚本。从长远来看,其他任何事情都会给你带来很多麻烦。您可能想查看 Liquibase 或 Flyway 等工具,这些工具对管理架构迁移步骤有很大帮助
  • @a_horse_with_no_name:我想用 VCS 来管理所有的脚本。但是跟踪更改并手动进行更改会很麻烦吗?在我拉到服务器端之前,当有多个提交,每个都有几个更改时,尤其如此。
  • 这就是我推荐使用 Liquibase(或 Flyway)的原因。一旦您在生产中完成了初始版本,您当前的解决方案将在某个时候失败。

标签: database postgresql stored-procedures schema dbmigrate


【解决方案1】:

为此使用pg_dump,Postgres 有很棒的教程。对于单模式指令可能如下:

pg_dump -o -h hostname -U db_username -d db_name -n schema_name > your_schema.dump

恢复命令示例:

psql -h hostname -U db_username db_name < your_schema.dump

【讨论】:

  • 我会在第一个命令中添加 -s,因为问题是要求仅迁移架构,而不是数据。
猜你喜欢
  • 1970-01-01
  • 2020-07-11
  • 2018-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-17
  • 2020-05-30
相关资源
最近更新 更多