生产中的Grails部署 - 手动数据库迁移

时间:2015-01-08 08:12:20

标签: grails gorm

我来自蟒蛇世界,django通常我们的部署流程如下:

  1. tar / gz我们的代码发布
  2. 解压生产
  3. 通过南
  4. 手动运行数据库迁移
  5. 运行应用
  6. Grails与python / django略有不同,主要是因为最终产品是编译过的战争。我最大的问题是手动数据库迁移。我不想自动运行它,我看到的一个建议的解决方案是使用dbm-update-sql生成手动sql文件,但是为了生成它我需要我的本地数据库具有与生产数据库 - 我不喜欢它。

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

显然,既然你不想管理生产模式的副本来对付这种情况,那将是很多手动工作(例如让你的更改保持最新)。

数据库迁移插件可用于创建您手动运行的sql脚本,但您确实需要生成模式来进行区分。我建议你走这条路,但你似乎反对这样做。