2012-05-16 41 views
25

Vì một lý do nào đó, không có tài liệu nào về việc chạy liquibase bên trong mã Java. Tôi muốn tạo bảng cho các bài kiểm tra Đơn vị.Chạy liquibase trong mã Java

Làm cách nào để chạy trực tiếp trong Java?

ví dụ:

Liquibase liquibase = new Liquibase() 
liquibase.runUpdates() ? 
+0

Bạn đã xem http://forum.liquibase.org/topic/using-liquibase-directly-from-java chưa? – artbristol

Trả lời

33

Nó phải là một cái gì đó tương tự (lấy từ nguồn 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 
      } 
     } 
    } 

Có nhiều thi hành ResourceAccessor tùy thuộc vào cách các file changelog của bạn nên được tìm thấy.

+0

Cảm ơn Nathan. :) – sproketboy

+3

Đã thêm vào Nathan Trả lời tham khảo mã thực từ đây https://github.com/liquibase/liquibase/blob/master/liquibase-core/src/main/java/liquibase/integration/servlet/LiquibaseServletListener.java#L209 –

Các vấn đề liên quan