【问题标题】:How to work with grails and multiple postgresql database schemata如何使用 grails 和多个 postgresql 数据库模式
【发布时间】:2010-11-09 17:35:28
【问题描述】:

有时我们有一个使用多个数据库模式的应用程序。

例如有一个表 company1.someTable,它看起来与 company2.someTable 完全一样。但是一些用户可以访问 company1.,其他用户可以访问 company2.

有没有一种简单的方法可以让 grails 使用这样的数据库并让用户选择架构?

【问题讨论】:

    标签: database postgresql grails


    【解决方案1】:

    你可以试试 Datasources 插件。

    http://www.grails.org/plugin/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”字母。

    希望这会有所帮助。

    【讨论】:

    • 感谢您的提示,但我认为这个插件并不能完全满足我的需求。我想为多个模式/数据库提供一个应用程序,该应用程序具有相同的表,用户可以在其中选择他想使用的表。
    • 对不起,我误解了这个问题。但是你仍然需要那种功能,但是基于一些参数而不是类名。根据对来源的理解:goo.gl/KTDdA 我会研究persistenceInterceptor bean。其他方法(更混乱)是创建超类,它将被继承给子类。例如。 package.company1.Class & package.company2.Class 扩展 package.SuperClass。这样你就可以使用这个插件了。但我不喜欢它.. 只是想 :)
    • 还是谢谢你。以下博客文章可能更接近我的需求:leebutts.com/2008/07/switchable-grails-datasource.html
    猜你喜欢
    • 2016-11-21
    • 2015-05-11
    • 2015-12-29
    • 2017-09-19
    • 1970-01-01
    • 2010-11-25
    • 2011-10-27
    • 2012-01-11
    • 2022-01-24
    相关资源
    最近更新 更多