我有一个 .sql 文件(初始 sql 脚本)。我最近在 cloudfoundry 中部署了应用程序,所以我想运行这些脚本来使应用程序工作,脚本将更新超过 5 个 db 表。
是否有任何其他方法可以在启动时从 grails 应用程序运行 mysql 脚本或者是否有任何规定可以在 cloudfoundry 中运行脚本。
我有一个 .sql 文件(初始 sql 脚本)。我最近在 cloudfoundry 中部署了应用程序,所以我想运行这些脚本来使应用程序工作,脚本将更新超过 5 个 db 表。
是否有任何其他方法可以在启动时从 grails 应用程序运行 mysql 脚本或者是否有任何规定可以在 cloudfoundry 中运行脚本。
你有几个选择。
第一个(我推荐)是使用类似http://liquibase.org/的东西(有一个 Grails 插件: http: //grails.org/plugin/liquibase)。此工具将确保您为其提供的任何脚本都将在应用程序启动之前运行,而无需两次运行相同的脚本等。这对于跟踪数据库更改非常有用。这独立于 CloudFoundry 工作,将帮助任何安装您的应用程序的人拥有最新的架构
第二个选项是通过隧道连接到 CloudFoundry 数据库并将脚本运行到数据库。看看http://docs.cloudfoundry.com/tools/vmc/caldecott.html或者更容易使用 STS: http: //blog.cloudfoundry.com/2012/07/31/cloud-foundry-integration-for -eclipse-now-supports-tunneling-to-services/
是的,埃博塔尔说的!:-) 虽然,我个人会选择在 VMC 上使用隧道功能,但也就是说,我是一个 Ruby 人!
如果使用大型数据集引导数据库,请注意 MySQL 中的查询会超时!