JHipster and database connection

I am using JHipster and when I run sudo mvn liquibase:diff

I get the following error

[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

      

I don’t know why [INFO] username: gastos8

.

This is my config file:

dev.yml applications

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

      

What am I doing wrong?

+6


source to share


4 answers


Liquibase maven plugin doesn't read application.yml to know how to connect to your database, it has its own config in your pom.xml. So you have to put it there.



Why are you running maven with sudo? Now you probably have project files owned by root, which is usually a bad idea.

+10


source


In src / main / resources / config / application-dev.yml file

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

      

You must change:

DBNAME
USERNAME 
PWD

      



Don't forget to change production

src/main/resources/config/application-prod

      

and localhost

in url: jdbc: mysql: // localhost

: 3306 to your url

+1


source


datasource:
        driver-class-name: com.mysql.jdbc.jdbc2.optional.MysqlDataSource
        url: jdbc:mysql://database hosting address:3306/database Name?useUnicode=true characterEncoding=utf8
        name: database Name
        username: database user name 
        password: and put here database user password

      

0


source


As the accepted answer says, maven doesn't read application.yml.

But if you are not comfortable with having the database configuration in your maven liquibase plugin definition, you can use maven properties and liquibase config file.

1 - In your liquibase-maven-plugin

add propertyFile

liquibase-maven-plugin

:

<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 - Create liquibase properties files anywhere in src / main / resources directory. For example src / main / resources / config / liquibase:

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 - Tell maven to filter your liquibase properties files to replace the values ​​with maven properties. The <build>

ask maven filter your configuration file liquibase:

<build>
    <resources>
        <resource>
            <directory>src/main/resources/config/liquibase</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    (...)
</build>

      

4 - Add maven properties for each profile allowed to run targets in liquid.

<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 - Run liquibase targets with maven and set credentials on command line:

mvn resources:resources liquibase:update -Pdev -Ddatasource.username=root -Ddatasource.password=root

      

Source: Liquibase Maven Documentation

0


source







All Articles