Создание базы данных Postgres с использованием liquibase - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь создать пустую базу данных, используя liqubase . Я использую этот подход, чтобы сделать это, но проблема в том, что он не работает для меня.

Я использую Postgresql 10 и у меня есть настройки для maven и liqubase:

 <plugin>
          <groupId>org.liquibase</groupId>
          <artifactId>liquibase-maven-plugin</artifactId>
          <version>3.0.5</version>
          <configuration>
             <propertyFile>src/main/resources/liquibase/liquibase.properties</propertyFile>
          </configuration>
          <executions>
              <execution>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>update</goal>
                    </goals>
              </execution>
          </executions>
  </plugin>

И мой liqubase.properties:

changeLogFile=src/main/resources/liquibase/db.changelog.xml
driver=org.postgresql.Driver
dropFirst=false
url=jdbc:postgresql://localhost:5432/auth?createDatabaseIfNotExist=true
username=postgres
password=root

Ошибка на mvn clean package:

org.postgresql.util.PSQLException: FATAL: база данных "auth" не есть

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Это немного выходит за рамки вашего вопроса, но вы могли бы использовать liquibase против экземпляра Docker postgres , и в соответствии с документацией docker-библиотеки по ПЕРЕМЕННЫМ ОКРУЖАЮЩЕЙ СРЕДЫ установите POSTGRES_DB в значение "auth" ( в вашем случае), и он создаст «auth» db при запуске образа докера, с которым затем может взаимодействовать liquibase.

0 голосов
/ 01 мая 2018

Liquibase не создаст базу данных, которая вообще не существует. Я также представляю, что параметр URL ?createDatabaseIfNotExist=true, на который ссылается связанный вопрос / ответ, вероятно, специфичен для MySql.

...