在生产上进行Grails部署-手动进行数据库迁移

问题描述 投票:1回答:2

我来自python Django世界,通常我们的部署流程如下:

  1. tar / gz我们的代码发布
  2. 打开产品包装
  3. 通过South手动运行数据库迁移
  4. 运行应用

Grails与python / django有点不同,主要是因为最终产品是一场编译之战。 我最大的问题是手动数据库迁移。 我不想自动运行它,我看到的一个建议的解决方案是使用dbm-update-sql生成手动sql文件,但是要生成它,我需要本地数据库具有与生产数据库相同的版本。我不喜欢

还有其他建议吗? 在我看来,手动运行它的唯一方法是在计算机上部署源代码并在其中运行dbm命令。

grails gorm
2个回答
1
投票

您可以对生产数据库运行dbm-update-sql ,它不会进行任何更改,因为它像所有-sql脚本一样,向您显示在实际迁移的情况下将执行的操作。 为了安全起见,创建一个没有权限进行更改的用户,并在运行脚本时使用它。 使用该用户信息和生产连接信息在DataSource.groovy创建一个自定义环境,并在运行脚本时指定该环境。


0
投票

我强烈建议不要将源部署到您的生产系统。 因为,您希望手动控制数据库迁移,所以在Grails应用程序的正常流程之外,我建议您考虑使用liquibase作为独立工具。

显然,由于您不想管理生产模式的副本以与此相对,这将需要您进行大量手动工作(例如,使更改保持最新状态)。

数据库迁移插件可用于创建您手动运行的sql脚本,但是您确实需要一个差异化的生产模式。 我建议您选择这条路线,但是您似乎不赞成这样做。

© www.soinside.com 2019 - 2024. All rights reserved.