从Cloudfoundry上部署的Grails应用程序绑定到MongoDB服务

时间:2013-05-01 07:39:09

标签: mongodb grails cloudfoundry gridfs

我目前正在使用Grails 2.2.2和MySQL编写Grails应用程序,并且已将其部署到Cloudfoundry。

直到最近,我刚刚为我的域使用了一个MySQL数据源,Cloudfoundry会检测并自动创建并绑定MySQL服务实例。

我现在需要在某处存储潜在的大文件,所以我想我会看看MongoDB的GridFS。 Cloudfoundry支持MongoDB,所以我假设Cloudfoundry在部署我的应用程序时会做更多魔术,并且也会为我提供MongoDB数据源。

不幸的是,当我部署应用程序时,我没有被提示创建/绑定MongoDB服务,我认为这可能与我连接到Mongo的方式有关。

我没有使用MongoDB插件,因为这与我正在使用的另一个插件冲突,无论如何我不需要将我的任何域名持久保存到Mongo - 只是一些大文件 - 所以我是直接使用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服务?

1 个答案:

答案 0 :(得分:0)

使用答案代替评论以获得更好的格式。 :)

我猜您已经按照步骤在Cloudfoundry中创建了MongoDB服务,如上所述here,否则必须这样做。另外,如果使用名为GMongo的MongoDB Java驱动程序的Groovy包装器,将会更容易。有关详细信息,请参阅GitHUb Source和此Mongo blog