【发布时间】:2014-01-27 23:36:05
【问题描述】:
我在 CL 中使用 flyway 迁移我的生产数据库 (mySql),而我使用 H2 在单元测试中使用固定 SQL 查询来创建数据库、表等。我现在想在每次单元测试后更好地集成 flyway 和创建/删除数据库。
我有一个数据库工厂,在它的构建方法中我使用了以下代码:
flyway.setLocations("filesystem:sql/migrations/common","filesystem:sql/migrations/h2");
flyway.setSchemas("MYSERVER");
flyway.setDataSource(
p.getProperty(DB_URL.getName()),
p.getProperty(USERNAME.getName()),
p.getProperty(PASSWORD.getName()));
flyway.setInitOnMigrate(true);
flyway.migrate();
迁移似乎正确应用,因为我可以从 flyway 日志中看到我的 SQL 代码。但是当我开始使用数据库时,之后立即出现 TABLE NOT FOUND 错误。我在内存数据库中使用 h2 和以下 URL 来初始化我的客户端:
jdbc:h2:mem:MYSERVER;MVCC=true
你知道我可能做错了什么吗?
【问题讨论】: