0

liquibase databaseChangeLog を使用してテーブルを作成しました。

      <changeSet id="1" author="person1">
        <createTable tableName="schedule">
         <column name="id" type="varchar(20)">
                <constraints primaryKey="true" nullable="false"/>
         </column>
         <column name="worktime" type="datetime">
         </column>
  </createTable>
  </changeSet>

ただし、sqlite データベースを検証すると、テーブル スキーマは次のようになりました。

sqlite> .schema schedule
CREATE TABLE schedule (
id TEXT NOT NULL, 
worktime TEXT, 
CONSTRAINT PK_SCHEDULE 
PRIMARY KEY (id));

varchar と datatime の両方がテキスト型に変更されていることがわかります。正しく機能させるために、changeSet テーブル定義に追加する必要があるもの。ちなみに、私はliquibase-1.9.3.jarを使用しています。ここで、sqlite DB から直接修正する必要があります。ありがとう。

4

1 に答える 1

2

SQLite には日時データ型がありません。数値、テキスト、blob のみをサブポートします。

http://www.sqlite.org/datatype3.htmlからの引用

SQLite には、日付や時刻を保存するためのストレージ クラスが用意されていません。

于 2012-07-05T16:31:50.877 に答える