由于某些原因,在Java代码中没有运行liquibase的文档。我想为单元测试生成表格。在Java代码中运行liquibase
如何直接在Java中运行它?
例如
Liquibase liquibase = new Liquibase()
liquibase.runUpdates() ?
由于某些原因,在Java代码中没有运行liquibase的文档。我想为单元测试生成表格。在Java代码中运行liquibase
如何直接在Java中运行它?
例如
Liquibase liquibase = new Liquibase()
liquibase.runUpdates() ?
它应该是这样的(取自liquibase.integration.spring.SpringLiquibase源):
java.sql.Connection c = YOUR_CONNECTION;
Liquibase liquibase = null;
try {
Database database = DatabaseFactory.getInstance().findCorrectDatabaseImplementation(new JdbcConnection(c))
liquibase = new Liquibase(YOUR_CHANGELOG, new FileSystemResourceAccessor(), database);
liquibase.update();
} catch (SQLException e) {
throw new DatabaseException(e);
} finally {
if (c != null) {
try {
c.rollback();
c.close();
} catch (SQLException e) {
//nothing to do
}
}
}
有根据您的更新日志文件应该如何被发现的多种实现ResourceAccessor的。
谢谢Nathan。 :) – sproketboy
添加到Nathan回答参考从这里的真实代码https://github.com/liquibase/liquibase/blob/master/liquibase-core/src/main/java/liquibase/integration/servlet/LiquibaseServletListener.java#L209 –
你看过http://forum.liquibase.org/topic/using-liquibase-directly-from-java吗? – artbristol