使用 liquibase 更改日志创建带有日期时间字段的表,为什么该字段会变成文本类型



我使用 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 和数据时间都更改为文本类型。我应该添加到 changeSet 表定义中以使其正常工作。顺便说一下,我正在使用liquibase-1.9.3.jar。现在我必须直接从sqlite DB更正它们。谢谢。

SQLite 没有 datetime 数据类型。它只子移植数字、文本和 blob:

引自 http://www.sqlite.org/datatype3.html

SQLite 没有为存储日期和/或时间预留的存储类

最新更新