2013-07-10 75 views
1

我只是无法使用flyway命令行工具来识别和执行Java迁移。Flyway Java迁移不能在命令行工具中工作

我做了什么至今:

  1. 下载并解压缩迁飞(命令行版本)
  2. 在conf目录配置flyway.properties,设置以下属性
    • flyway.driver,迁徙路线。 URL,flyway.user,flyway.password
  3. 添加Oracle JDBC驱动程序的目录罐子
  4. 已执行flyway.cmd init =>已工作。历史记录表已创建。
  5. 增加了一个SQL文件到./sql目录V1_1__Some_sql.sql
  6. 执行的flyway.cmd迁移=>工作。 DB被改变了

    FINE SO FAR。按预期工作。现在有问题的部分:

  7. 在我的IDE中创建一个Java类。

    public class V1_2__Another_test implements JdbcMigration 
    { 
    
        public void migrate(Connection connection) throws Exception 
        { 
    
         PreparedStatement statement = connection.prepareStatement("INSERT INTO flyway_sample (name) VALUES ('My Name')"); 
    
         try { 
         statement.execute(); 
         } finally { 
         statement.close(); 
         } 
        } 
    } 
    
  8. 编译的类,把它放入一个罐子名V1_2__Another_test.jar

  9. 放在罐子中的SQL或罐子,并试图flyway.cmd运行迁移。 => Flyway忽略它。
  10. 试图将.class文件放入jar或sql => Flyway也忽略它。
  11. 我使用Flyway 2.1.1。

我错过了什么?

回答

3

你做了什么听起来不错。确保将你的班级所在的包裹添加到flyway.locations,你应该很好。

+1

谢谢,给flyway.locations的包名是缺失的部分。现在它似乎工作。 – magicroomy

+0

我已经提到了位置。仍然它不工作。 'flyway.jarDirs = D:/Software/dbmigrationtool/flyway-4.0/jars flyway.locations = classpath:db.migration,filesystem:D:/ Workspace/Commercial/commercial/CCPlatform/src/main/database/oracle/update_tanant ' – iMBMT