Liquibase初始化配置

数据库配置

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot_blog
spring.datasource.username=root
spring.datasource.password=root

Liquibase配置

spring.liquibase.change-log=classpath:/db/changelog/db.changelog-master.xml

目录结构

com/
  example/
    db/
      changelog/
        db.changelog-master.xml
        db.changelog-1.0.xml
        db.changelog-1.1.xml
        db.changelog-2.0.xml

db.changelog-master.xml

<?xml version="1.0" encoding="UTF-8"?>   
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.4.xsd">  

    <include  file="com/example/db/changelog/db.changelog-1.0.xml"/>   
    <include  file="com/example/db/changelog/db.changelog-1.1.xml"/>   
    <include  file="com/example/db/changelog/db.changelog-2.0.xml"/>  

</databaseChangeLog> 

db.changelog-1.0.xml

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog 
xmlns="http://www.liquibase.org/xml/ns/dbchangelog" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-4.4.xsd">
    <changeSet id="202110201812" author="huoxiaoqiang">
        <createTable tableName="house">
            <column name="id" type="bigint">
                <constraints primaryKey="true" primaryKeyName="house_id_pk" />
            </column>
	    <column name="owner" type="varchar(250)">
	        <constraints unique="true" uniqueConstraintName="house_owner_unq" />
	    </column>
	    <column name="fully_paid" type="boolean" defaultValueBoolean="false"></column>
	</createTable>
	<createTable tableName="item">
	    <column name="id" type="bigint">
		<constraints primaryKey="true" primaryKeyName="item_id_pk" />
	    </column>
	    <column name="name" type="varchar(250)" />
	    <column name="house_id" type="bigint">
		<constraints nullable="false" notNullConstraintName="item_house_id_nn" />
	    </column>
	</createTable>
	<addAutoIncrement tableName="house" columnName="id" columnDataType="bigint" startWith="1" incrementBy="1" />
	<addAutoIncrement tableName="item" columnName="id" columnDataType="bigint" startWith="1" incrementBy="1" />
	<createSequence sequenceName="hibernate_sequence" incrementBy="1" startValue="1" />
	<addForeignKeyConstraint baseTableName="item" baseColumnNames="house_id" constraintName="item_house_id_fk" referencedTableName="house" referencedColumnNames="id" />
    </changeSet>
</databaseChangeLog>

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/javae/8681.html

(0)
上一篇 2021年8月1日 01:52
下一篇 2021年8月1日 14:35

相关推荐

  • Java语言的SE、EE、ME、FX平台

    Java 技术既是一种编程语言,也是一种平台。Java 编程语言是一种高级的面向对象语言,具有特定的语法和风格。Java 平台是 Java 编程语言应用程序在其中运行的特定环境。 有多种 Java 平台。许多开发人员,甚至是长期的 Java 编程语言开发人员,都不了解不同平台之间的关系。 Java 编程语言平台 Jav…

    Java经验 2020年10月7日
    09160
  • Java语言的var关键字的作用

    从Java 10 开始,如果可以从变量的初始值推导出它们的类型,那么可以用var关键字声明局部变量,而无需指定类型。只需要写以下代码: 注意:var关键字只能用于方法中的局部变量。参数和字段的类型必须声明。

    Java经验 2021年9月12日
    02300
  • Java语言length与length()的区别

    length是数组的一个属性,用来表示数组的长度。length()是字符串的一个方法,用来返回字符串的长度。

    Java经验 2021年9月12日
    02300

发表评论

登录后才能评论