Mysql 使用Liquibase从模型和数据库中删除唯一键约束

Mysql 使用Liquibase从模型和数据库中删除唯一键约束,mysql,jhipster,liquibase,Mysql,Jhipster,Liquibase,我有一个spring boot项目,我有一个具有唯一密钥constraint的实体。我不想手动删除此约束,因为它可能会影响我的CI/CD部件,但我是否可以使用Liquibase执行此操作。确定如果您使用的是YAML,它可能如下所示: changeSet: id: dropUniqueConstraint-example author: liquibase-docs changes: - dropUniqueConstraint: catalogName: cat

我有一个spring boot项目,我有一个具有唯一密钥constraint的实体。我不想手动删除此约束,因为它可能会影响我的CI/CD部件,但我是否可以使用Liquibase执行此操作。

确定如果您使用的是YAML,它可能如下所示:

changeSet:
  id: dropUniqueConstraint-example
  author: liquibase-docs
  changes:
  - dropUniqueConstraint:
      catalogName: cat
      constraintName: const_name
      schemaName: public
      tableName: person
      uniqueColumns: A String

请在此处查找文档:

给您。您需要做的只是将其添加到您的变更日志文件中,并让CI/CD完成它的工作。或者您在本地配置了H2,您也可以在本地看到更改

我从官方文件中复制了下面提到的内容,将对您有所帮助

XML

<changeSet author="liquibase-docs" id="dropUniqueConstraint-example">
    <dropUniqueConstraint catalogName="cat"
            constraintName="const_name"
            schemaName="public"
            tableName="person"
            uniqueColumns="A String"/>
</changeSet>
changeSet:
  id: dropUniqueConstraint-example
  author: liquibase-docs
  changes:
  - dropUniqueConstraint:
      catalogName: cat
      constraintName: const_name
      schemaName: public
      tableName: person
      uniqueColumns: A String
JSON

{
  "changeSet": {
    "id": "dropUniqueConstraint-example",
    "author": "liquibase-docs",
    "changes": [
      {
        "dropUniqueConstraint": {
          "catalogName": "cat",
          "constraintName": "const_name",
          "schemaName": "public",
          "tableName": "person",
          "uniqueColumns": "A String"
        }
      }]

  }
}

不,我正在使用xml文件,我也看到了这个文档,但是现在我不知道我应该把它放在一个单独的更改日志文件中,应该在我的master.xml中提及它,还是应该在我已经存在的xml文件中提及它。你应该创建一个新的迁移并将它添加到你的master.xml中。您应该编辑实体类以删除java中的约束file@SimonMartinelli我创建了一个新文件,将这个xml放在其中,并在master.xml中提到了这个文件,我还更改了我的实体。但是,当我重新启动应用程序时,数据库中没有反映任何更改。您看到执行的SQL语句了吗?你有错误吗?您能显示XML文件吗