Каков современный метод установки базы данных в Grails 3?

Как настроить базу данных в Grails 3? Руководство выглядит устаревшим здесь: http://grails.github.io/grails-doc/3.0.x/guide/single.html

так как это дает пример установки с кодом рощи, как показано ниже:

dataSource {
    pooled = true
    dbCreate = "update"
    url = "jdbc:mysql://localhost:3306/my_database"
    driverClassName = "com.mysql.jdbc.Driver"
    dialect = org.hibernate.dialect.MySQL5InnoDBDialect
    username = "username"
    password = "password"
    ...

пока у меня есть application.yml с

dataSource:
    pooled: true
    jmxExport: true
    driverClassName: org.h2.Driver
    username: sa
    password:

Какой метод актуален?

2 ответа

Что касается Grails 3.2.2 с GORM 6, документация Grails является актуальной и правильной, и эта "дополнительная" конфигурация, показанная в первой дате ответа 7 апреля, больше не нужна. Пример конфигурации источника данных:

---
---
dataSources:
    hibernate:
        cache:
            queries: true
            use_second_level_cache: true
            use_query_cache: true
            region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'

    dataSource:
        pooled: true
        # pool_size: 15
        jmxExport: true
        driverClassName: org.postgresql.Driver

    dataSource_two:
        pooled: true
        # pool_size: 15
        jmxExport: true
        driverClassName: org.postgresql.Driver

#############################################################
# Spring Actuator Endpoints are Disabled by Default
#############################################################
---
---
endpoints:
    enabled: false
    jmx:
        enabled: true

---
---
grails:
    codegen:
        defaultPackage: com.healthreveal
    controllers:
        defaultScope: singleton
    converters:
        encoding: UTF-8
    mime:
        disable:
            accept:
                header:
                    userAgents:
                        - Gecko
                        - WebKit
                        - Presto
                        - Trident
        types:
            all: '*/*'
            atom: application/atom+xml
            css: text/css
            csv: text/csv
            form: application/x-www-form-urlencoded
            html:
              - text/html
              - application/xhtml+xml
            js: text/javascript
            json:
              - application/json
              - text/json
            multipartForm: multipart/form-data
            rss: application/rss+xml
            text: text/plain
            hal:
              - application/hal+json
              - application/hal+xml
            xml:
              - text/xml
              - application/xml
    profile: rest-api (or web)
    spring:
        transactionManagement:
            proxies: false
        urlmapping:
            cache:
            maxsize: 1000

---
---
# you would think you could put this in the section above, but for some reason you can't
grails.logging.jul.usebridge: true

---
---
hibernate:
    cache:
        queries: false
        use_second_level_cache: true
        use_query_cache: false
        region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory

---
---
info:
    app:
        name: '@info.app.name@'
        version: '@info.app.version@'
        grailsVersion: '@info.app.grailsVersion@'

---
---
spring:
    groovy:
        template:
            check-template-location: false

#################################################################
# This second section is a set of environment-specific over-rides
# to the common parameters.  There is no need to repeat a
# common parameter unless you want to change the setting (or add
# a new setting) within the context of an environment.
#################################################################

---
---
environments:
    development:
        dataSources:
            dataSource:
                dbCreate: update
                url: jdbc:postgresql://localhost:5432/dbOne
                username: someuser
                password: somepassword
            dataSource_xyz:
                dbCreate: update
                url: jdbc:postgresql://localhost:5432/dbXYZ
                username: someuser
                password: somepassword
        grails:
            serverURL: "http://localhost:8080"
            plugin:
                forceSSL:
                    enabled: false
       server:
            port: 8080
            ssl:
                enabled: false

Вот текущий пример postgres с несколькими источниками данных. Я обнаружил, что избыточность была необходима, потому что были некоторые несоответствия в уровнях, которые ожидали Grails, Spring и Hibernate, чтобы увидеть информацию о конфигурации. это удовлетворило их всех. также включите зависимость времени выполнения для вашего драйвера jdbc. для postgres это было

dependencies {
    // all other dependencies

    runtime "org.postgresql:postgresql:9.4.1208"
}

[Запуск файла application.yml. да, строки '---' должны быть там. они не дают спутнику запутаться.]

---
hibernate:
    cache:
        queries: true
        use_second_level_cache: true
        use_query_cache: true
        region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
    dialect: org.hibernate.dialect.H2Dialect

dataSources:
    hibernate:
        cache:
            queries: true
            use_second_level_cache: true
            use_query_cache: true
            region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
        dialect: org.hibernate.dialect.H2Dialect

    dataSource:
        pooled: true
        jmxExport: true
        driverClassName: org.postgresql.Driver
        driver_class: org.postgresql.Driver
        username: user
        password: pw
        dialect: org.hibernate.dialect.PostgreSQLDialect
        hibernate:
            cache:
                queries: true
                use_second_level_cache: true
                use_query_cache: true
                region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
            dialect: org.hibernate.dialect.PostgreSQLDialect
            connection.driver_class: org.postgresql.Driver
            connection.url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbone
            connection.username: user
            connection.password: pw
            connection.pool_size: 15
            connection.dialect: org.hibernate.dialect.PostgreSQLDialect
            driver_class: org.postgresql.Driver
            url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbone
            username: user
            password: pw
            pool_size: 15
            driverClassName: org.postgresql.Driver

    dataSource_two:
        pooled: true
        jmxExport: true
        driverClassName: org.postgresql.Driver
        driver_class: org.postgresql.Driver
        username: usertwo
        password: pw
        dialect: org.hibernate.dialect.PostgreSQLDialect
        hibernate:
            cache:
                queries: true
                use_second_level_cache: true
                use_query_cache: true
                region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
            dialect: org.hibernate.dialect.PostgreSQLDialect
            connection.driver_class: org.postgresql.Driver
            connection.url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbtwo
            connection.username: usertwo
            connection.password: pw
            connection.pool_size: 15
            connection.dialect: org.hibernate.dialect.PostgreSQLDialect
            driver_class: org.postgresql.Driver
            url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbtwo
            username: usertwo
            password: pw
            pool_size: 15
            driverClassName: org.postgresql.Driver

    dataSource_three:
        pooled: true
        jmxExport: true
        driverClassName: org.postgresql.Driver
        driver_class: org.postgresql.Driver
        username: userthree
        password: pw
        dialect: org.hibernate.dialect.PostgreSQLDialect
        hibernate:
            cache:
                queries: true
                use_second_level_cache: true
                use_query_cache: true
                region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
            dialect: org.hibernate.dialect.PostgreSQLDialect
            connection.driver_class: org.postgresql.Driver
            connection.url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbthree
            connection.username: userthree
            connection.password: pw
            connection.pool_size: 15
            connection.dialect: org.hibernate.dialect.PostgreSQLDialect
            driver_class: org.postgresql.Driver
            url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbthree
            username: userthree
            password: pw
            pool_size: 15
            driverClassName: org.postgresql.Driver

environments:
    local:
        hibernate:
            cache:
                queries: true
                use_second_level_cache: true
                use_query_cache: true
                region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
            dialect: org.hibernate.dialect.H2Dialect
        dataSources:
            hibernate:
                cache:
                    queries: true
                    use_second_level_cache: true
                    use_query_cache: true
                    region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
                dialect: org.hibernate.dialect.H2Dialect
            dataSource:
                dbCreate: create
                url: jdbc:postgresql://127.0.0.1:5432/dbone
                driver_class: org.postgresql.Driver
                driverClassName: org.postgresql.Driver
                username: userone
                password: pw
                pool_size: 15
                dialect: org.hibernate.dialect.PostgreSQLDialect
                logSql: true
                hibernate:
                    cache:
                        queries: true
                        use_second_level_cache: true
                        use_query_cache: true
                        region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
                    dialect: org.hibernate.dialect.PostgreSQLDialect
                    connection.driver_class: org.postgresql.Driver
                    connection.url: jdbc:postgresql://127.0.0.1:5432/dbone
                    connection.username: userone
                    connection.password: pw
                    connection.pool_size: 15
                    connection.dialect: org.hibernate.dialect.PostgreSQLDialect
                    driver_class: org.postgresql.Driver
                    url: jdbc:postgresql://127.0.0.1:5432/dbone
                    username: userone
                    password: pw
                    pool_size: 15
                    driverClassName: org.postgresql.Driver

            dataSource_two:
                dbCreate: create
                url: jdbc:postgresql://127.0.0.1:5432/dbtwo
                driver_class: org.postgresql.Driver
                driverClassName: org.postgresql.Driver
                username: usertwo
                password: pw
                pool_size: 15
                dialect: org.hibernate.dialect.PostgreSQLDialect
                logSql: true
                hibernate:
                    cache:
                        queries: true
                        use_second_level_cache: true
                        use_query_cache: true
                        region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
                    dialect: org.hibernate.dialect.PostgreSQLDialect
                    connection.driver_class: org.postgresql.Driver
                    connection.url: jdbc:postgresql://127.0.0.1:5432/dbtwo
                    connection.username: usertwo
                    connection.password: pw
                    connection.pool_size: 15
                    connection.dialect: org.hibernate.dialect.PostgreSQLDialect
                    driver_class: org.postgresql.Driver
                    url: jdbc:postgresql://127.0.0.1:5432/dbtwo
                    username: usertwo
                    password: pw
                    pool_size: 15
                    driverClassName: org.postgresql.Driver
            dataSource_three:
                dbCreate: create
                url: jdbc:postgresql://127.0.0.1:5432/dbthree
                driver_class: org.postgresql.Driver
                driverClassName: org.postgresql.Driver
                username: userthree
                password: pw
                pool_size: 15
                dialect: org.hibernate.dialect.PostgreSQLDialect
                logSql: true
                hibernate:
                    cache:
                        queries: true
                        use_second_level_cache: true
                        use_query_cache: true
                        region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
                    dialect: org.hibernate.dialect.PostgreSQLDialect
                    connection.driver_class: org.postgresql.Driver
                    connection.url: jdbc:postgresql://127.0.0.1:5432/dbthree
                    connection.username: userthree
                    connection.password: pw
                    connection.pool_size: 15
                    connection.dialect: org.hibernate.dialect.PostgreSQLDialect
                    driver_class: org.postgresql.Driver
                    url: jdbc:postgresql://127.0.0.1:5432/dbthree
                    username: userthree
                    password: pw
                    pool_size: 15
                    driverClassName: org.postgresql.Driver

    development:
        hibernate:
            cache:
                queries: true
                use_second_level_cache: true
                use_query_cache: true
                region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
            dialect: org.hibernate.dialect.H2Dialect
        dataSources:
            hibernate:
                cache:
                    queries: true
                    use_second_level_cache: true
                    use_query_cache: true
                    region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
                dialect: org.hibernate.dialect.H2Dialect
            dataSource:
                dbCreate: create-drop
                url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbone
                driver_class: org.postgresql.Driver
                driverClassName: org.postgresql.Driver
                username: userone
                password: pw
                pool_size: 15
                dialect: org.hibernate.dialect.PostgreSQLDialect
                hibernate:
                    cache:
                        queries: true
                        use_second_level_cache: true
                        use_query_cache: true
                        region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
                    dialect: org.hibernate.dialect.PostgreSQLDialect
                    connection.driver_class: org.postgresql.Driver
                    connection.url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbone
                    connection.username: userone
                    connection.password: pw
                    connection.pool_size: 15
                    connection.dialect: org.hibernate.dialect.PostgreSQLDialect
                    driver_class: org.postgresql.Driver
                    url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbone
                    username: userone
                    password: pw
                    pool_size: 15
                    driverClassName: org.postgresql.Driver

            dataSource_two:
                dbCreate: create-drop
                url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbtwo
                driver_class: org.postgresql.Driver
                driverClassName: org.postgresql.Driver
                username: usertwo
                password: pw
                pool_size: 15
                dialect: org.hibernate.dialect.PostgreSQLDialect
                hibernate:
                    cache:
                        queries: true
                        use_second_level_cache: true
                        use_query_cache: true
                        region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
                    dialect: org.hibernate.dialect.PostgreSQLDialect
                    connection.driver_class: org.postgresql.Driver
                    connection.url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbtwo
                    connection.username: usertwo
                    connection.password: pw
                    connection.pool_size: 15
                    connection.dialect: org.hibernate.dialect.PostgreSQLDialect
                    driver_class: org.postgresql.Driver
                    url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbtwo
                    username: usertwo
                    password: pw
                    pool_size: 15
                    driverClassName: org.postgresql.Driver
            dataSource_three:
                dbCreate: create-drop
                url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbthree
                driver_class: org.postgresql.Driver
                driverClassName: org.postgresql.Driver
                username: userthree
                password: pw
                pool_size: 15
                dialect: org.hibernate.dialect.PostgreSQLDialect
                hibernate:
                    cache:
                        queries: true
                        use_second_level_cache: true
                        use_query_cache: true
                        region.factory_class: 'org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory'
                    dialect: org.hibernate.dialect.PostgreSQLDialect
                    connection.driver_class: org.postgresql.Driver
                    connection.url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbthree
                    connection.username: userthree
                    connection.password: pw
                    connection.pool_size: 15
                    connection.dialect: org.hibernate.dialect.PostgreSQLDialect
                    driver_class: org.postgresql.Driver
                    url: jdbc:postgresql://ec2-1-2-3-4.compute-1.amazonaws.com:5432/dbthree
                    username: userthree
                    password: pw
                    pool_size: 15
                    driverClassName: org.postgresql.Driver

---
---
[ this is not the end of the application.yml, just the end of the datasource section.]
Другие вопросы по тегам