【发布时间】:2014-05-23 19:14:00
【问题描述】:
我正在尝试将 Flyway 迁移集成到我的项目中(portlet - 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) 在 src/main/resources/db/migration 中添加 sql 脚本 V1_Create_table_messages.sql
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 的一些重要步骤......
感谢您的任何提示!
编辑2: 在 pom.xml 中添加 MySQL 连接器依赖项
已解决:
问题是缺少 mysql 依赖项和 url 中的多余斜线...
【问题讨论】: