我想通過快照我的數據庫的當前狀態來開始使用liquibase生成changeLog。Liquibase - 如何生成現有數據庫的更新日誌
環境的詳細信息:
- 操作系統:Windows 7 32 86,
- 的Java JDK 1.7,從MySQL
- liquibase 2.0.5
- MySQL JDBC驅動程序。
我運行命令行以下操作:
liquibase --driver=com.mysql.jdbc.Driver --changeLogFile=./structure.xml --url="jdbc:mysql://mysql.mysite.com" --username=<myuser> --password=<mypass> generateChangeLog
它運行正常,並且所產生的輸出文件。但輸出文件只包含:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd"/>
並沒有表在我的數據庫上創建(我期待用於跟蹤的兩個表)。
我錯過了什麼?
編輯
是的,我指的是liquibasechanlog和liquibasechangelock表。我知道他們應該自動出現在數據庫中。我的問題是他們爲什麼不在那裏。是的,提供的用戶有權執行此類任務。
而且它不是一個空的數據庫。它有近20桌,10次,數據...
通過用於跟蹤的兩個表,你的意思是'liquibasechangelog'和'liquibasechangeloglock'?這些實際上不是用liquibase.xml管理的,而是爲你自動創建的。 –
擴展Christoph提出的要求。你的數據庫不包含應用程序表,你在問爲什麼changelog是空的? :-) –
如果我沒有在連接url中指定數據庫--url =「jdbc:mysql://mysql.mysite.com」,那麼我描述了相同的行爲,但是如果我添加數據庫名稱工作正常:'--url =「jdbc:mysql://mysql.mysite.com/dummy」'。 – poussma