我从蟒蛇的世界即将到来,Django的地方通常我们的部署流程是如下:Grails的部署 - 手动分贝迁移
- 焦油/ GZ我们的代码发布
- 解包的生产
- 运行分贝迁移手动经由南
- 运行程序
Grails是比Python/django的毫安有点不同因为最终产品是一场编纂的战争。我最大的问题是手动数据库迁移。我不想自动运行它,我看到的一个建议解决方案是使用dbm-update-sql
生成手动sql文件,但为了生成它,我需要我的本地数据库具有与生产数据库相同的版本 - 我不'不喜欢它。
还有其他建议吗?它看起来像我手动运行它的唯一方法是在机器上部署源代码并在那里运行dbm
命令。
我喜欢手动的原因是错误处理,如果迁移失败,我不希望战争加载所有,我希望它失败了,另外如果它失败我想明确的错误消息,并没有发生什么去搜索它在catalina.out –
我似乎记得,如果迁移失败,应用程序将停止加载,因此不会部署。在Tomcat的情况下,catalina.out中将出现错误。同样,如果您想手动控制,请查看使用Liquibase作为独立工具(这是数据库迁移插件在内部使用的)。 –
你知道使用哪个groovy dsl扩展吗?我找到了一个可能的候选人 - https://github.com/tlberglund/groovy-liquibase,但在阅读http://burtbeckwith.com/blog/?p=1774时,它看起来像插件正在实现它自己的dsl解析器。看起来如果我想去手动,那么我将不得不使用XML表示,一个真正的失望。 –