Grails 3架构导出错误的用户名或passowrd

时间:2017-06-08 07:42:47

标签: grails schemaexport

我在Intellij中有一个包含多个数据源的Grails 3项目。尝试运行Grails命令:

schema-export  --filename grails-app/conf/db/migration/operator/ddl.sql  --datasource=operator
  

org.h2.jdbc.JdbcSQLException:错误的用户名或密码[28000-194]

完整错误如下。有趣的是,连接不是h2 DB。 application.yml正在使用PostgreSQL DB。

dataSources:
  dataSource:
    pooled: false
    jmxExport: true
    driverClassName: org.postgresql.Driver
    username: user1
    password: password1
    dialect: net.kaleidos.hibernate.PostgresqlExtensionsDialect
  operator:
    pooled: false
    jmxExport: true
    driverClassName: org.postgresql.Driver
    username: user2
    password: password2
    dialect: org.hibernate.dialect.PostgresqlExtensionsDialect

environments:
  development:
    server:
        contextPath: '/@info.app.name@'
    dataSource:
        dbCreate: none
        url: jdbc:postgresql://localhost:5432/mydb?currentSchema=schema1
    datasources:
        operator:
            dbCreate: none
            url: jdbc:postgresql://localhost1:5432/mydb?currentSchema=schema2

为什么会失败?

  

在环境'开发中生成。\ build \ ddl.sql脚本。对于   DataSource'运营商' 2017-06-08 14:35:14.598错误--- [
  Thread-13] o.g.p.d.EmbeddedDatabaseShutdownHook:错误关闭   down datasource

     

org.h2.jdbc.JdbcSQLException:错误的用户名或密码[28000-194]     在   org.h2.message.DbException.getJdbcSQLException(DbException.java:345)     在org.h2.message.DbException.get(DbException.java:179)at   org.h2.message.DbException.get(DbException.java:155)at   org.h2.message.DbException.get(DbException.java:144)at   org.h2.engine.Engine.validateUserAndPassword(Engine.java:336)at at   org.h2.engine.Engine.createSessionAndValidate(Engine.java:162)at at   org.h2.engine.Engine.createSession(engine.java:137)at   org.h2.engine.Engine.createSession(engine.java:27)at   Org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:354)atg.h2.jdbc.JdbcConnection。(JdbcConnection.java:116)at   org.h2.jdbc.JdbcConnection。(JdbcConnection.java:100)at   org.h2.Driver.connect(Driver.java:69)at   java.sql.DriverManager.getConnection(DriverManager.java:664)at   java.sql.DriverManager.getConnection(DriverManager.java:208)at   org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:153)     在   org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:144)     在   org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:196)     在   org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:159)     在   org.grails.plugins.datasource.EmbeddedDatabaseShutdownHook.shutdownEmbeddedDatabase(EmbeddedDatabaseShutdownHook.groovy:87)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:498)at   org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)     在   org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)     在groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)at   groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1218)at at   groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)at at   org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:925)     在   org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:908)     在   org.codehaus.groovy.runtime.InvokerHelper.invokeMethodSafe(InvokerHelper.java:76)     在   org.grails.plugins.datasource.EmbeddedDatabaseShutdownHook $ _stop_closure2.doCall(EmbeddedDatabaseShutdownHook.groovy:39)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:498)at   org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1426)     在   org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)     在groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)at   org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)     在groovy.lang.Closure.call(Closure.java:414)at   groovy.lang.Closure.call(Closure.java:430)at   org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030)     在   org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015)     在   org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2056)     在   org.grails.plugins.datasource.EmbeddedDatabaseShutdownHook.stop(EmbeddedDatabaseShutdownHook.groovy:38)     在   org.grails.plugins.datasource.EmbeddedDatabaseShutdownHook.stop(EmbeddedDatabaseShutdownHook.groovy:62)     在   org.springframework.context.support.DefaultLifecycleProcessor.doStop(DefaultLifecycleProcessor.java:231)     在   org.springframework.context.support.DefaultLifecycleProcessor.access $ 300(DefaultLifecycleProcessor.java:50)     在   org.springframework.context.support.DefaultLifecycleProcessor $ LifecycleGroup.stop(DefaultLifecycleProcessor.java:365)     在   org.springframework.context.support.DefaultLifecycleProcessor.stopBeans(DefaultLifecycleProcessor.java:204)     在   org.springframework.context.support.DefaultLifecycleProcessor.onClose(DefaultLifecycleProcessor.java:120)     在   org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1002)     在   org.springframework.context.support.AbstractApplicationContext $ 2.run(AbstractApplicationContext.java:928)

1 个答案:

答案 0 :(得分:0)

我部分解决了这个问题。用于配置多个数据源的Grails 3文档似乎是错误的。 https://github.com/Homebrew/brew/blob/master/docs/FAQ.md#can-i-install-my-own-stuff-to-usrlocal它似乎不适用于application.yml中的每个环境配置。通过将所有配置参数放在根级别,export-schema命令将运行。

这回答了我在这里提出的问题,但架构导出仍然不起作用:

  • 它创建build \ ddl.sql(gradle schemaExport默认值),而不是schema-export grails命令中指定的那个

  • build / ddl.sql为空。