2013-05-01 38 views
0

我目前正在使用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服务?

+0

为了理解Grails应用程序中多个数据源的存在,非默认'datasource'必须命名为'datSource_Mongo'(带下划线)。你尝试过这个选项吗? – dmahapatro 2013-05-01 13:18:18

+0

感谢您的提示 - 我已将'dataSourceMongo'更改为'dataSource_mongo',但Cloudfoundry仍然不会提示将Mongo实例绑定到它。 – rcgeorge23 2013-05-01 18:18:07

回答

0

使用回答而不是评论来更好地格式化。 :)

我想你已经按照步骤here在Cloudfoundry中创建MongoDB服务,否则就必须完成。另外,如果您使用MongoDB的Java驱动程序的Groovy包装器(名为GMongo),将会更容易。有关更多详细信息,请参阅GitHUb Source和此Mongo blog

+0

不幸的是我不能使用MongoDB插件 - 我认为一些休眠过滤器会干扰我已经使用的多租户插件。是的,我已经尝试过手动创建MongoDB服务,但仍然没有运气。我正在考虑其他选项(例如将文件存储在文件系统中,而不是部署到Cloudfoundry!) – rcgeorge23 2013-05-02 08:18:35

相关问题