我目前正在使用Grails 2.2.2和MySQL编写Grails应用程序,并且已经将它部署到Cloudfoundry。绑定到部署在Cloudfoundry上的Grails应用程序中的MongoDB服务
直到最近,我刚刚为我的域使用了一个MySQL数据源,Cloudfoundry检测并自动创建并绑定了MySQL服务实例。
我现在有要求在某处存储大型文件,所以我想我会看看MongoDB的GridFS。 Cloudfoundry支持MongoDB,因此我认为Cloudfoundry在部署我的应用程序时会做更多的魔术,并且也会为我提供MongoDB数据源。
不幸的是,当我部署我的应用程序时,我没有提示创建/绑定MongoDB服务,我认为这可能是我连接到Mongo的方式。
我没有使用MongoDB插件,因为这与我正在使用的另一个插件发生冲突,无论如何,我不需要将我的任何域名保存到Mongo - 只是一些大文件 - m直接使用Mongo java驱动程序(与此类似 - http://jameswilliams.be/blog/entry/171)。
我不确定Cloudfoundry如何检测到您的应用程序需要某个特定的数据源,但我认为它会以某种方式从DataSource.groovy中找出结果。
矿看起来像这样...
environments {
development {
dataSource {
driverClassName = "com.mysql.jdbc.Driver"
dbCreate = "create-drop"
...
}
dataSourceMongo {
host = "localhost"
port = 27017
dbName = "my_mongo_database_name"
...
}
}
}
有我丢失的东西?或者我需要以某种方式手动绑定MongoDB服务?
为了理解Grails应用程序中多个数据源的存在,非默认'datasource'必须命名为'datSource_Mongo'(带下划线)。你尝试过这个选项吗? – dmahapatro 2013-05-01 13:18:18
感谢您的提示 - 我已将'dataSourceMongo'更改为'dataSource_mongo',但Cloudfoundry仍然不会提示将Mongo实例绑定到它。 – rcgeorge23 2013-05-01 18:18:07