2012-05-23 102 views
1

我試圖部署一個新的grails 2.0.3應用程序使用雪松堆棧heroku。我的應用程序使用database migration plugin來管理postgres架構。在開發中,我可以運行grails dbm-update來更新我的模式。在heroku中,似乎grails不可用。有什麼建議麼?如何在heroku中運行grails命令?

我目前的解決方法想法包括嘗試從我的本地直接連接到heroku postgres並以這種方式運行遷移(不理想,並且不能用共享數據庫),或者分叉heroku grails buildpack(似乎過多) 。

回答

2

我已經設法通過運行dbm-update(可以是任何grails腳本)直接對我的本地機器進行操作。方法如下:

  1. 獲取您的heroku pg實例的憑據。我認爲只有這樣才能做到這一點瓦特/專用數據庫,而不是共享類型。這可能會改變一些very new heroku pg developments

  2. 在您的datasource.groovy w/prod細節中創建一個新的環境數據源。我的是這樣的:

prodadmin { 
     dataSource { 
      dbCreate = "none" 
      driverClassName = "org.postgresql.Driver" 
      dialect = org.hibernate.dialect.PostgreSQLDialect 
      url = 'jdbc:postgresql://host:5432/dbname?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory' 
      username = 'user' 
      password = 'password' 
     } 
} 
 

有了到位,你可以繼續用這樣的命令更新生產的Grails應用程序在Heroku的模式:自動運行功能創建

grails -Dgrails.env=prodadmin dbm-update