スキーマを作成し、Maven liquibase プラグインを介して入力しました。
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>2.0.5</version>
<configuration>
<propertyFile>src/main/resources/db/config/db.config.properties</propertyFile>
<changeLogFile>src/main/resources/db/changelog/db.changelog-master.xml</changeLogFile>
</configuration>
</plugin>
プロパティ ファイル:
driver: org.hsqldb.jdbcDriver
#HSQLDB Embedded in file
url: jdbc:hsqldb:file:src/main/resources/db/hsqldb/dataFile
username: SA
password:
呼び出し時の出力に見られるようにmvn liquibase:update
:
[INFO] Executing on Database: jdbc:hsqldb:file:src/main/resources/db/hsqldb/dataFile
INFO 24.04.13 10:00:liquibase: Successfully acquired change log lock
INFO 24.04.13 10:00:liquibase: Creating database history table with name: DATABASECHANGELOG
INFO 24.04.13 10:00:liquibase: Reading from DATABASECHANGELOG
INFO 24.04.13 10:00:liquibase: Reading from DATABASECHANGELOG
INFO 24.04.13 10:00:liquibase: ChangeSet src/main/resources/db/changelog/db.changelog-1.0.xml::1::sav ran successfully in 7ms
INFO 24.04.13 10:00:liquibase: ChangeSet src/main/resources/db/changelog/db.changelog-1.0.xml::2::sav ran successfully in 3ms
INFO 24.04.13 10:00:liquibase: Successfully released change log lock
INFO 24.04.13 10:00:liquibase: Successfully released change log lock
db.changelog-master.xml
内容:
<include file="src/main/resources/db/changelog/db.changelog-1.0.xml"/>
db.changelog-1.0.xml
内容:
<changeSet id="1" author="sav">
<createTable tableName="testTable">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="name" type="varchar(50)">
<constraints nullable="false"/>
</column>
<column name="active" type="boolean" defaultValueBoolean="true"/>
</createTable>
</changeSet>
<changeSet id="2" author="sav">
<insert tableName="testTable">
<column name="id" value="1"/>
<column name="name" value="First String"/>
</insert>
<insert tableName="testTable">
<column name="id" value="2"/>
<column name="name" value="Second String"/>
<column name="active" value="false"/>
</insert>
</changeSet>
すべて問題ないようです。ここで、src/main/resources/db/hsqldb/
フォルダーに移動して、3 つのファイルを確認します。
dataFile.log
dataFile.properties
dataFile.script
CREATE TABLE testTable
しかし、 .dl ファイルに DDL ステートメントがありませんdataFile.script
。次に Intelli IDEA でデータソース プラグインを構成します (set jdbc hsql driver, url: jdbc:hsqldb:file:/src/main/resources/db/hsqldb/dataFile
, user: sa )。それを接続し、クエリを呼び出します:
SELECT * FROM INFORMATION_SCHEMA.SYSTEM_TABLES;
- 作成しようとしているテーブルが表示されません。
- 各テーブルの hsqldb_type フィールドの値は MEMORY です。似たようなファイルになると思います。
何か案は?:)
PS: 1. Maven リポジトリは最初の検索結果としてHSQLDBを返し、その最新バージョンは 1.8.0.10 です。実際には、2.2.9 バージョンのHSQLDB DATABASEを使用する必要がありました。テーブル作成の問題を解決しました。2. ファイルへの絶対パスと ';ifexists=true' プロパティを使用して、IDEA データソース プラグインの既存のデータベースに接続する必要がありました。その結果、プロパティ ファイル内の URL 接続文字列は、プラグインで使用されているものとは異なります。