2010-11-09 35 views
0

有時我們有一個使用多個數據庫模式的應用程序。如何使用grails和多個postgresql數據庫模式

E.g.有一張表company1.someTable看起來和company2.someTable完全一樣。但有些用戶可以訪問company1。 ,其他公司2。或兩者。

有沒有一種簡單的方法可以告訴grails如何使用這樣的數據庫並讓用戶選擇模式?

回答

1

你可以試試Datasources插件。

我已成功地連接兩個不同的MySQL數據庫(Postgres的應該是相同的)。

在Grails項目運行命令:

Grails的安裝,插件數據源

創建文件的conf/Datasources.conf,將舉行第二模式(默認仍處於Dataseource.conf)

例如:

數據源= {

datasource(name: 'wadmin') { 
    driverClassName('com.mysql.jdbc.Driver') 
    dbCreate("update") 
    url("jdbc:mysql://localhost/wadmin-test") 
    username("xx") 
    password("xx") 
    // here you will write list of classes in particular schema 
    domainClasses([cz.webarchiv.wadmin.Curator, cz.webarchiv.wadmin.Publisher]) 
    dialect(org.hibernate.dialect.MySQL5InnoDBDialect) 
    pooled(true) 
    environments(['development']) 
} 

}

請注意數據源中的小「s」字母。

希望這會有所幫助。

+0

謝謝你的提示,但我認爲這個插件並不能滿足我的需求。我希望爲具有相同表格的多個模式/數據庫提供一個應用程序,用戶可以選擇他想使用的表格。 – mkobel 2010-11-09 10:43:39

+0

對不起,我誤解了這個問題。但是你仍然需要那種funcionality,但是基於一些參數而不是class名字。從理解源代碼:http://goo.gl/KTDdA我會研究persistenceInterceptor bean。 其他方法(更麻煩)將創建超類,它將繼承到子類。例如。 package.company1.Class&package.company2.Class擴展了package.SuperClass。這樣你可以使用這個插件。但我不喜歡它..它只是想到:) – 2010-11-09 11:38:30

+0

謝謝你。以下博客文章可能更接近我的需求:http://www.leebutts.com/2008/07/switchable-grails-datasource.html – mkobel 2010-11-09 14:18:29

相關問題