gpt4 book ai didi

database - 如何使用 liquibase,一个具体的例子

转载 作者:太空狗 更新时间:2023-10-30 01:38:47 27 4
gpt4 key购买 nike

按照 liquibase 上的快速入门进行操作我创建了一个变更集(非常愚蠢 :))

代码:

<?xml version="1.0" encoding="UTF-8"?>

<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.6"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.6
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.6.xsd">

<changeSet id="1" author="me">
<createTable tableName="first_table">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="name" type="varchar(50)">
<constraints nullable="false"/>
</column>
</createTable>
<createTable tableName="new_table">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
</createTable>
</changeSet>

</databaseChangeLog>

我已经创建了一个干净的架构并启动了迁移命令。

Liquibase 使用支持表 databasechangelog 和 ..lock 创建了数据库。

现在我如何跟踪变化??我已经修改了变更集,添加了一个新的 createTable 元素,但是当我尝试命令“更新”时,liquibase 告诉我这个

Migration Failed: Validation Failed:
1 change sets check sum

所以我不认为已经理解了使用 liquibase 的方式。

有人可以指出我正确的方向吗??

谢谢

最佳答案

你不应该修改 <changeSet>那已经被执行了。 Liquibase 计算所有已执行的变更集的校验和并将它们存储在日志中。然后它将重新计算该校验和,将其与存储的校验和进行比较,如果校验和不同,则下次运行时会失败。

您需要做的是添加另一个 <changeSet>并将新的 createTable 元素放入其中。

QuickStart 读起来不错,但确实很快 :-) 查看完整的 manual , 特别是它的 ChangeSet部分。

关于database - 如何使用 liquibase,一个具体的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1148663/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com