首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JHipster与数据库连接

JHipster与数据库连接
EN

Stack Overflow用户
提问于 2015-08-07 17:11:27
回答 4查看 19.7K关注 0票数 8

我使用的是JHipster,当我运行sudo mvn liquibase:diff时,我得到以下错误

代码语言:javascript
复制
[INFO] Settings
----------------------------
[INFO]     driver: org.postgresql.Driver
[INFO]     url: jdbc:postgresql://localhost/gastos8
[INFO]     username: gastos8
[INFO]     password: *****
[INFO]     use empty password: false
[INFO]     properties file: null
[INFO]     properties file will override? false
[INFO]     prompt on non-local database? true
[INFO]     clear checksums? false
[INFO]     changeLogFile: src/main/resources/config/liquibase/master.xml
[INFO]     context(s): null
[INFO]     label(s): null
[INFO]     referenceDriver: null
[INFO]     referenceUrl: hibernate:spring:com.cboujon.domain?dialect=org.hibernate.dialect.PostgreSQL82Dialect
[INFO]     referenceUsername: null
[INFO]     referencePassword: null
[INFO]     referenceDefaultSchema: null
[INFO]     diffChangeLogFile: src/main/resources/config/liquibase/changelog/20150807132702_changelog.xml
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.554s
[INFO] Finished at: Fri Aug 07 13:27:12 ART 2015
[INFO] Final Memory: 18M/179M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.3.2:diff (default-cli) on project gastos8: Error setting up or running Liquibase: liquibase.exception.DatabaseException: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "gastos8" -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

我不知道为什么是[INFO] username: gastos8

这是我的配置文件:

application-dev.yml

代码语言:javascript
复制
spring:
    profiles:
        active: dev
    datasource:
        dataSourceClassName: org.postgresql.ds.PGSimpleDataSource
        url: 
        databaseName: gastos8
        serverName: localhost
        username: postgres
        password:  ---

    jpa:
        database-platform: org.hibernate.dialect.PostgreSQL9Dialect
        database: POSTGRESQL
        openInView: false
        show_sql: true
        generate-ddl: false
        hibernate:
            ddl-auto: none
            naming-strategy: org.hibernate.cfg.EJB3NamingStrategy
        properties:
            hibernate.cache.use_second_level_cache: true
            hibernate.cache.use_query_cache: false
            hibernate.generate_statistics: true
            hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory

我做错了什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-07 21:44:29

Liquibase maven插件不阅读application.yml来了解如何连接到数据库,它在pom.xml中有自己的配置。所以你必须把它放在那里。

你为什么要用sudo来执行maven?现在,您可能拥有root拥有的项目文件,这通常是个坏主意。

票数 11
EN

Stack Overflow用户

发布于 2018-06-06 15:15:45

正如接受的答案中所说的,maven不读application.yml。

但是,如果您不喜欢将数据库配置放在您的maven清算库插件定义中,那么您可以使用maven属性和一个清算库配置文件。

1-在liquibase-maven-plugin配置中,添加一个propertyFile

代码语言:javascript
复制
<plugin>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-maven-plugin</artifactId>
    <version>${liquibase.version}</version>
    <configuration>
        <propertyFileWillOverride>true</propertyFileWillOverride>
        <propertyFile>src/main/resources/liquibase.properties</propertyFile>
    </configuration>
    (...)
</plugin>

2-在src/main/resources下的任何位置创建液化基属性文件。例如,src/main/resources/config/液化库:

代码语言:javascript
复制
contexts:${liquibase.contexts}
changeLogFile:src/main/resources/config/liquibase/master.xml
driver:${dataSource.project.driverClass}
url:${dataSource.project.jdbcURL}
username:${dataSource.project.user}
password:${dataSource.project.password}
verbose:true
dropFirst:false

3-告诉maven过滤您的液化基属性文件,用maven属性替换值。在<build>中,请让maven过滤您的液化库配置文件:

代码语言:javascript
复制
<build>
    <resources>
        <resource>
            <directory>src/main/resources/config/liquibase</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    (...)
</build>

4-为启动液化目标所允许的每个配置文件添加maven属性:

代码语言:javascript
复制
<profile>
    <id>dev</id>
    (...)
    <properties>
        <liquibase.contexts></liquibase.contexts>
        <dataSource.project.driverClass>org.mariadb.jdbc.Driver</dataSource.project.driverClass>
        <dataSource.project.jdbcURL>jdbc:mariadb://localhost:3306/yourDatabaseName</dataSource.project.jdbcURL>
        <dataSource.project.user>${datasource.username}</dataSource.project.user>
        <dataSource.project.password>${datasource.password}</dataSource.project.password>
    </properties>
</profile>

5-使用maven启动液化基目标,并在命令行中设置凭据:

代码语言:javascript
复制
mvn resources:resources liquibase:update -Pdev -Ddatasource.username=root -Ddatasource.password=root

来源:Liquibase Maven文档

票数 2
EN

Stack Overflow用户

发布于 2016-08-19 07:31:54

在文件src/main/resources/config/application-dev.yml中

代码语言:javascript
复制
datasource:
        driver-class-name: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
        url: jdbc:mysql://localhost:3306/DBNAME?useUnicode=true characterEncoding=utf8
        name: DBNAME
        username: USERNAME 
        password: PWD

你必须改变:

代码语言:javascript
复制
DBNAME
USERNAME 
PWD

别忘了改变生产

代码语言:javascript
复制
src/main/resources/config/application-prod

localhost中的url: jdbc:mysql://localhost:3306到您的url

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31883195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档