Liquibase generateChangeLog不包括列长度(MySQL)

时间:2016-04-19 15:55:40

标签: mysql liquibase

我正在使用Liquibase的generateChangeLog命令,如下所示:

liquibase --driver=com.mysql.jdbc.Driver \
  --classpath=$HOME/.m2/repository/mysql/mysql-connector-java/5.1.26/mysql-connector-java-5.1.26.jar \
  --changeLogFile=./db.changelog.xml \
  --url="jdbc:mysql://localhost:3306/db" \
  generateChangeLog

其中输出的XML更改日志没有所有列的列长度定义。

示例:

<changeSet author="purecharger (generated)" id="1461081110463-2">
    <createTable tableName="account">
        <column name="id" type="BIGINT">
            <constraints nullable="false"/>
        </column>
        ...
    </createTable>
</changeSet>

列定义(摘录):

Create Table: CREATE TABLE `account` (
  `id` bigint(20) NOT NULL,
  ...

为什么更改日志不包含长度,如此?

<column name="id" type="BIGINT(20)">
    <constraints nullable="false"/>
</column>

1 个答案:

答案 0 :(得分:1)

在MySQL中,BIGINT指定8个字节的空间,这对于从-9223372036854775808到922337203685477580的整数就足够了.BIGINT(20)并不是真正意义上的任何东西。 MySQL接受它是慷慨的。

此MySQL页面的完整详细信息:https://dev.mysql.com/doc/refman/5.5/en/integer-types.html