当前位置: 首页 > 知识库问答 >
问题:

Liquibase在创建表时忽略可空约束

公羊英达
2023-03-14

Liquibase版本:3.3.2

DB平台:SQL服务器2014

驱动程序:jdbc 4.0

我使用GenerateChangeLog命令从我的数据库生成一组新的部署脚本。许多表都没有NULL列,但当我测试Liquibase部署(更新)列时,它们都可以为空。这导致PK创建失败。

样本更改集:

"createTable": {
  "columns": [
    {
      "column": {
        "constraints": {
          "constraints": {
            "nullable": false
          }
        },
        "name": "Model_Training_Id",
        "type": "CHAR(12)"
      }
    },
    ...

有什么建议吗?

共有1个答案

黄俊智
2023-03-14

问题出在Liquibase生成的JSON日志中。当我生成XML更改日志时,这个问题就消失了。这看起来是一个bug,我会记录下来。

 类似资料:
  • 我在一些字段上有@NotNull注释。然而,当我尝试生成diffChangelog时,它会删除所有非空约束 示例类: 差异集: 唯一的解决方案似乎是在每个字段上添加一个额外的注释@列(nullable=false)。我可以做任何事情,这样我就不必在每个字段上添加额外的注释。

  • 我有一个简单的MySQL数据库,我正在从PHP查询它。我让用户通过表单输入一些约束,然后希望根据约束返回SELECT查询的结果。当两个约束都被使用时,我所做的就是工作。但是,如果用户没有指定其中一个约束,SELECT查询将不返回任何结果,我认为这是因为它将约束变量视为空。 如果SELECT查询不是空的,如何让它使用约束,如果是空的,如何让它忽略约束? 这是我之前试过的,但不起作用。我想我可以测试它

  • 我在酗酒方面遇到了麻烦。出于某种原因(我没有更改任何现有的变更集或其他东西),它试图应用已经在base中的变更集。所以我得到了一些错误,比如“关系”表“已经存在”。 我找到了这个标签-

  • Liquibase文件如下: 数据库更改日志: 我在启动spring boot应用程序时添加唯一约束时遇到以下错误 迁移更改集失败 /db/changelog/changes/1.create-account-balance-table.yml::1::roran:原因:liquibase.exception.数据库异常: ERROR:语法错误在或接近PARTITION位置: 93[失败SQL:(

  • 我正在使用liquibase运行一个changelog文件来部署几个数据库对象。如果在变更日志中找不到特定文件,则会出现文件未找到错误并停止执行。我想忽略未找到的文件,而不是引发错误。我查看了文档,但没有找到任何适用于我的用例的内容。有线索吗? 提前感谢。

  • 您可能已经注意到,缺少了“生成为标识”,这使我相信不管出于什么原因,AutoIncrement=“true”被忽略了。 我使用Oracle 12.1.0.2和org.LiquiBase:LiquiBase-Core 3.8.2。OJDBC驱动程序版本为19.3.0.0。分级属性为: 我读过互联网,我知道我的Oracle版本与此列类型兼容,并且我不需要创建额外的Oracle序列。有什么线索会出什么问