Я пытаюсь интегрировать миграцию Flyway в свой проект (портлет - сборка maven), но я не могу понять, как выполнить все необходимые шаги - не могли бы вы взглянуть на то, что я сделал до сих пор, и посоветуйте, что мне не хватает, пожалуйста ? Я прочитал документацию и несколько примеров, но нет полного руководства по настройке с нуля:
Вот что я сделал:
1) Добавлены зависимости в pon.xml
<dependency>
<groupId>com.googlecode.flyway</groupId>
<artifactId>flyway-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
2) Добавлен sql-скрипт V1_Create_table_messages.sql в src/main/resources/db/migration
CREATE TABLE messages (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
msgid VARCHAR(64) UNIQUE,
sender VARCHAR(255),
receiver VARCHAR(255),
);
3) Создан класс миграции с этим:
public void migrate() {
try {
Flyway flyway = new Flyway();
flyway.setDataSource("jdbc:mysql://localhost:3306/myDb", "user", "password");
flyway.setInitOnMigrate(true);
flyway.migrate();
} catch (Exception e) {
System.out.println("Error while migrate database");
}
}
Когда я вызываю этот метод, я получаю следующее: (ОТРЕДАКТИРОВАНО!)
com.googlecode.flyway.core.api.FlywayException: Unable to obtain Jdbc connection from DataSource
Caused by: java.sql.SQLException: Invalid authorization specification message from server: "Access denied for user 'nobody'@'localhost' (using password: NO)"
Вся информация в setDataSource указана правильно. Я знаю, что это, вероятно, какая-то глупость, но я чувствую, что пропускаю какой-то важный шаг в настройке Flyway здесь...
Спасибо за любые советы!
EDIT2: добавлена зависимость коннектора MySQL в pom.xml
РЕШЕНО:
проблема заключалась в отсутствии зависимости mysql и дополнительной косой черты в URL-адресе...