mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2026-02-11 00:51:11 +00:00
Добавил файлы для работы с миграцией Liquibase
This commit is contained in:
parent
ab1d5364a0
commit
1ae24dd229
9 changed files with 408 additions and 5 deletions
11
build.gradle
11
build.gradle
|
|
@ -31,6 +31,10 @@ ext.webjarsFontawesomeVersion = "4.7.0"
|
|||
ext.webjarsBootstrapVersion = "5.3.8"
|
||||
|
||||
dependencies {
|
||||
implementation 'org.springframework.boot:spring-boot-starter-security'
|
||||
implementation 'com.h2database:h2'
|
||||
implementation 'org.liquibase:liquibase-core'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-liquibase'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-cache'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
|
||||
|
|
@ -72,6 +76,13 @@ checkstyleNohttp {
|
|||
configFile = file('src/checkstyle/nohttp-checkstyle.xml')
|
||||
}
|
||||
|
||||
bootRun {
|
||||
systemProperty "spring.profiles.active", "dev"
|
||||
// отключаем AOT
|
||||
dependsOn.removeAll { it.name.startsWith("processAot") }
|
||||
dependsOn.removeAll { it.name.startsWith("compileAot") }
|
||||
}
|
||||
|
||||
tasks.named("formatMain").configure { dependsOn("checkstyleMain") }
|
||||
tasks.named("formatMain").configure { dependsOn("checkstyleNohttp") }
|
||||
|
||||
|
|
|
|||
12
src/main/resources/application-dev.properties
Normal file
12
src/main/resources/application-dev.properties
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
spring.liquibase.contexts=dev
|
||||
spring.liquibase.enabled=true
|
||||
#spring.liquibase.run-on-startup=true
|
||||
spring.liquibase.change-log=classpath:db/changelog/db.changelog-master.xml
|
||||
|
||||
spring.datasource.url=jdbc:h2:file:./data/testdb
|
||||
spring.datasource.username=sa
|
||||
spring.datasource.password=
|
||||
spring.datasource.driver-class-name=org.h2.Driver
|
||||
|
||||
spring.h2.console.enabled=true
|
||||
spring.h2.console.path=/h2-console
|
||||
|
|
@ -4,4 +4,4 @@ spring.datasource.url=${MYSQL_URL:jdbc:mysql://localhost/petclinic}
|
|||
spring.datasource.username=${MYSQL_USER:petclinic}
|
||||
spring.datasource.password=${MYSQL_PASS:petclinic}
|
||||
# SQL is written to be idempotent so this is safe
|
||||
spring.sql.init.mode=always
|
||||
spring.sql.init.mode=never
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@ spring.datasource.url=${POSTGRES_URL:jdbc:postgresql://localhost/petclinic}
|
|||
spring.datasource.username=${POSTGRES_USER:petclinic}
|
||||
spring.datasource.password=${POSTGRES_PASS:petclinic}
|
||||
# SQL is written to be idempotent so this is safe
|
||||
spring.sql.init.mode=always
|
||||
spring.sql.init.mode=never
|
||||
|
|
|
|||
1
src/main/resources/application-prod.properties
Normal file
1
src/main/resources/application-prod.properties
Normal file
|
|
@ -0,0 +1 @@
|
|||
spring.liquibase.contexts=prod
|
||||
|
|
@ -1,7 +1,22 @@
|
|||
# database init, supports mysql too
|
||||
database=h2
|
||||
spring.sql.init.schema-locations=classpath*:db/${database}/schema.sql
|
||||
spring.sql.init.data-locations=classpath*:db/${database}/data.sql
|
||||
#database=h2
|
||||
#spring.sql.init.schema-locations=classpath*:db/${database}/schema.sql
|
||||
#spring.sql.init.data-locations=classpath*:db/${database}/data.sql
|
||||
spring.sql.init.mode=never
|
||||
|
||||
spring.profiles.active=dev
|
||||
|
||||
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
|
||||
spring.datasource.username=sa
|
||||
spring.datasource.password=
|
||||
spring.datasource.driver-class-name=org.h2.Driver
|
||||
|
||||
spring.liquibase.change-log=classpath:db/changelog/db.changelog-master.xml
|
||||
spring.liquibase.enabled=true
|
||||
#spring.liquibase.run-on-startup=true
|
||||
|
||||
logging.level.liquibase=DEBUG
|
||||
logging.level.org.springframework.boot.autoconfigure.liquibase=DEBUG
|
||||
|
||||
# Web
|
||||
spring.thymeleaf.mode=HTML
|
||||
|
|
|
|||
196
src/main/resources/db/changelog/db.changelog-dev-data.xml
Normal file
196
src/main/resources/db/changelog/db.changelog-dev-data.xml
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
<?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.27.xsd">
|
||||
|
||||
<!-- ===================== -->
|
||||
<!-- VETS -->
|
||||
<!-- ===================== -->
|
||||
<changeSet id="100-insert-vets" author="arman">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM vets</sqlCheck>
|
||||
</preConditions>
|
||||
|
||||
<insert tableName="vets"><column name="first_name" value="James"/><column name="last_name" value="Carter"/></insert>
|
||||
<insert tableName="vets"><column name="first_name" value="Helen"/><column name="last_name" value="Leary"/></insert>
|
||||
<insert tableName="vets"><column name="first_name" value="Linda"/><column name="last_name" value="Douglas"/></insert>
|
||||
<insert tableName="vets"><column name="first_name" value="Rafael"/><column name="last_name" value="Ortega"/></insert>
|
||||
<insert tableName="vets"><column name="first_name" value="Henry"/><column name="last_name" value="Stevens"/></insert>
|
||||
<insert tableName="vets"><column name="first_name" value="Sharon"/><column name="last_name" value="Jenkins"/></insert>
|
||||
</changeSet>
|
||||
|
||||
<!-- ===================== -->
|
||||
<!-- SPECIALTIES -->
|
||||
<!-- ===================== -->
|
||||
<changeSet id="101-insert-specialties" author="arman">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM specialties</sqlCheck>
|
||||
</preConditions>
|
||||
|
||||
<insert tableName="specialties"><column name="name" value="radiology"/></insert>
|
||||
<insert tableName="specialties"><column name="name" value="surgery"/></insert>
|
||||
<insert tableName="specialties"><column name="name" value="dentistry"/></insert>
|
||||
</changeSet>
|
||||
|
||||
<!-- ===================== -->
|
||||
<!-- VET_SPECIALTIES -->
|
||||
<!-- ===================== -->
|
||||
<changeSet id="102-insert-vet-specialties" author="arman">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM vet_specialties</sqlCheck>
|
||||
</preConditions>
|
||||
|
||||
<insert tableName="vet_specialties"><column name="vet_id" valueNumeric="2"/><column name="specialty_id" valueNumeric="1"/></insert>
|
||||
<insert tableName="vet_specialties"><column name="vet_id" valueNumeric="3"/><column name="specialty_id" valueNumeric="2"/></insert>
|
||||
<insert tableName="vet_specialties"><column name="vet_id" valueNumeric="3"/><column name="specialty_id" valueNumeric="3"/></insert>
|
||||
<insert tableName="vet_specialties"><column name="vet_id" valueNumeric="4"/><column name="specialty_id" valueNumeric="2"/></insert>
|
||||
<insert tableName="vet_specialties"><column name="vet_id" valueNumeric="5"/><column name="specialty_id" valueNumeric="1"/></insert>
|
||||
</changeSet>
|
||||
|
||||
<!-- ===================== -->
|
||||
<!-- TYPES -->
|
||||
<!-- ===================== -->
|
||||
<changeSet id="103-insert-types" author="arman">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM types</sqlCheck>
|
||||
</preConditions>
|
||||
|
||||
<insert tableName="types"><column name="name" value="cat"/></insert>
|
||||
<insert tableName="types"><column name="name" value="dog"/></insert>
|
||||
<insert tableName="types"><column name="name" value="lizard"/></insert>
|
||||
<insert tableName="types"><column name="name" value="snake"/></insert>
|
||||
<insert tableName="types"><column name="name" value="bird"/></insert>
|
||||
<insert tableName="types"><column name="name" value="hamster"/></insert>
|
||||
</changeSet>
|
||||
|
||||
<!-- ===================== -->
|
||||
<!-- OWNERS -->
|
||||
<!-- ===================== -->
|
||||
<changeSet id="104-insert-owners" author="arman">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM owners</sqlCheck>
|
||||
</preConditions>
|
||||
|
||||
<insert tableName="owners">
|
||||
<column name="first_name" value="George"/>
|
||||
<column name="last_name" value="Franklin"/>
|
||||
<column name="address" value="110 W. Liberty St."/>
|
||||
<column name="city" value="Madison"/>
|
||||
<column name="telephone" value="6085551023"/>
|
||||
</insert>
|
||||
|
||||
<insert tableName="owners">
|
||||
<column name="first_name" value="Betty"/>
|
||||
<column name="last_name" value="Davis"/>
|
||||
<column name="address" value="638 Cardinal Ave."/>
|
||||
<column name="city" value="Sun Prairie"/>
|
||||
<column name="telephone" value="6085551749"/>
|
||||
</insert>
|
||||
|
||||
<insert tableName="owners">
|
||||
<column name="first_name" value="Eduardo"/>
|
||||
<column name="last_name" value="Rodriquez"/>
|
||||
<column name="address" value="2693 Commerce St."/>
|
||||
<column name="city" value="McFarland"/>
|
||||
<column name="telephone" value="6085558763"/>
|
||||
</insert>
|
||||
|
||||
<insert tableName="owners">
|
||||
<column name="first_name" value="Harold"/>
|
||||
<column name="last_name" value="Davis"/>
|
||||
<column name="address" value="563 Friendly St."/>
|
||||
<column name="city" value="Windsor"/>
|
||||
<column name="telephone" value="6085553198"/>
|
||||
</insert>
|
||||
|
||||
<insert tableName="owners">
|
||||
<column name="first_name" value="Peter"/>
|
||||
<column name="last_name" value="McTavish"/>
|
||||
<column name="address" value="2387 S. Fair Way"/>
|
||||
<column name="city" value="Madison"/>
|
||||
<column name="telephone" value="6085552765"/>
|
||||
</insert>
|
||||
|
||||
<insert tableName="owners">
|
||||
<column name="first_name" value="Jean"/>
|
||||
<column name="last_name" value="Coleman"/>
|
||||
<column name="address" value="105 N. Lake St."/>
|
||||
<column name="city" value="Monona"/>
|
||||
<column name="telephone" value="6085552654"/>
|
||||
</insert>
|
||||
|
||||
<insert tableName="owners">
|
||||
<column name="first_name" value="Jeff"/>
|
||||
<column name="last_name" value="Black"/>
|
||||
<column name="address" value="1450 Oak Blvd."/>
|
||||
<column name="city" value="Monona"/>
|
||||
<column name="telephone" value="6085555387"/>
|
||||
</insert>
|
||||
|
||||
<insert tableName="owners">
|
||||
<column name="first_name" value="Maria"/>
|
||||
<column name="last_name" value="Escobito"/>
|
||||
<column name="address" value="345 Maple St."/>
|
||||
<column name="city" value="Madison"/>
|
||||
<column name="telephone" value="6085557683"/>
|
||||
</insert>
|
||||
|
||||
<insert tableName="owners">
|
||||
<column name="first_name" value="David"/>
|
||||
<column name="last_name" value="Schroeder"/>
|
||||
<column name="address" value="2749 Blackhawk Trail"/>
|
||||
<column name="city" value="Madison"/>
|
||||
<column name="telephone" value="6085559435"/>
|
||||
</insert>
|
||||
|
||||
<insert tableName="owners">
|
||||
<column name="first_name" value="Carlos"/>
|
||||
<column name="last_name" value="Estaban"/>
|
||||
<column name="address" value="2335 Independence La."/>
|
||||
<column name="city" value="Waunakee"/>
|
||||
<column name="telephone" value="6085555487"/>
|
||||
</insert>
|
||||
</changeSet>
|
||||
|
||||
<!-- ===================== -->
|
||||
<!-- PETS -->
|
||||
<!-- ===================== -->
|
||||
<changeSet id="105-insert-pets" author="arman">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM pets</sqlCheck>
|
||||
</preConditions>
|
||||
|
||||
<insert tableName="pets"><column name="name" value="Leo"/><column name="birth_date" valueDate="2000-09-07"/><column name="type_id" valueNumeric="1"/><column name="owner_id" valueNumeric="1"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Basil"/><column name="birth_date" valueDate="2002-08-06"/><column name="type_id" valueNumeric="6"/><column name="owner_id" valueNumeric="2"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Rosy"/><column name="birth_date" valueDate="2001-04-17"/><column name="type_id" valueNumeric="2"/><column name="owner_id" valueNumeric="3"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Jewel"/><column name="birth_date" valueDate="2000-03-07"/><column name="type_id" valueNumeric="2"/><column name="owner_id" valueNumeric="3"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Iggy"/><column name="birth_date" valueDate="2000-11-30"/><column name="type_id" valueNumeric="3"/><column name="owner_id" valueNumeric="4"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="George"/><column name="birth_date" valueDate="2000-01-20"/><column name="type_id" valueNumeric="4"/><column name="owner_id" valueNumeric="5"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Samantha"/><column name="birth_date" valueDate="1995-09-04"/><column name="type_id" valueNumeric="1"/><column name="owner_id" valueNumeric="6"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Max"/><column name="birth_date" valueDate="1995-09-04"/><column name="type_id" valueNumeric="1"/><column name="owner_id" valueNumeric="6"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Lucky"/><column name="birth_date" valueDate="1999-08-06"/><column name="type_id" valueNumeric="5"/><column name="owner_id" valueNumeric="7"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Mulligan"/><column name="birth_date" valueDate="1997-02-24"/><column name="type_id" valueNumeric="2"/><column name="owner_id" valueNumeric="8"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Freddy"/><column name="birth_date" valueDate="2000-03-09"/><column name="type_id" valueNumeric="5"/><column name="owner_id" valueNumeric="9"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Lucky"/><column name="birth_date" valueDate="2000-06-24"/><column name="type_id" valueNumeric="2"/><column name="owner_id" valueNumeric="10"/></insert>
|
||||
<insert tableName="pets"><column name="name" value="Sly"/><column name="birth_date" valueDate="2002-06-08"/><column name="type_id" valueNumeric="1"/><column name="owner_id" valueNumeric="10"/></insert>
|
||||
</changeSet>
|
||||
|
||||
<!-- ===================== -->
|
||||
<!-- VISITS -->
|
||||
<!-- ===================== -->
|
||||
<changeSet id="106-insert-visits" author="arman">
|
||||
<preConditions onFail="MARK_RAN">
|
||||
<sqlCheck expectedResult="0">SELECT COUNT(*) FROM visits</sqlCheck>
|
||||
</preConditions>
|
||||
|
||||
<insert tableName="visits"><column name="pet_id" valueNumeric="7"/><column name="visit_date" valueDate="2010-03-04"/><column name="description" value="rabies shot"/></insert>
|
||||
<insert tableName="visits"><column name="pet_id" valueNumeric="8"/><column name="visit_date" valueDate="2011-03-04"/><column name="description" value="rabies shot"/></insert>
|
||||
<insert tableName="visits"><column name="pet_id" valueNumeric="8"/><column name="visit_date" valueDate="2009-06-04"/><column name="description" value="neutered"/></insert>
|
||||
<insert tableName="visits"><column name="pet_id" valueNumeric="7"/><column name="visit_date" valueDate="2008-09-04"/><column name="description" value="spayed"/></insert>
|
||||
</changeSet>
|
||||
|
||||
</databaseChangeLog>
|
||||
|
||||
15
src/main/resources/db/changelog/db.changelog-master.xml
Normal file
15
src/main/resources/db/changelog/db.changelog-master.xml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
<?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.27.xsd">
|
||||
|
||||
<include file="db/changelog/db.changelog-schema.xml"/>
|
||||
|
||||
<!-- Тестовые данные ТОЛЬКО для dev -->
|
||||
<include file="db/changelog/db.changelog-dev-data.xml"/>
|
||||
|
||||
|
||||
</databaseChangeLog>
|
||||
153
src/main/resources/db/changelog/db.changelog-schema.xml
Normal file
153
src/main/resources/db/changelog/db.changelog-schema.xml
Normal file
|
|
@ -0,0 +1,153 @@
|
|||
<?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.27.xsd">
|
||||
|
||||
<!-- VETS -->
|
||||
<changeSet id="001-create-vets" author="arman">
|
||||
<createTable tableName="vets">
|
||||
<column name="id" type="INT" autoIncrement="true">
|
||||
<constraints primaryKey="true"/>
|
||||
</column>
|
||||
<column name="first_name" type="VARCHAR(30)"/>
|
||||
<column name="last_name" type="VARCHAR(30)"/>
|
||||
</createTable>
|
||||
<createIndex tableName="vets" indexName="idx_vets_last_name">
|
||||
<column name="last_name"/>
|
||||
</createIndex>
|
||||
</changeSet>
|
||||
|
||||
<!-- SPECIALTIES -->
|
||||
<changeSet id="002-create-specialties" author="arman">
|
||||
<createTable tableName="specialties">
|
||||
<column name="id" type="INT" autoIncrement="true">
|
||||
<constraints primaryKey="true"/>
|
||||
</column>
|
||||
<column name="name" type="VARCHAR(80)"/>
|
||||
</createTable>
|
||||
<createIndex tableName="specialties" indexName="idx_specialties_name">
|
||||
<column name="name"/>
|
||||
</createIndex>
|
||||
</changeSet>
|
||||
|
||||
<!-- VET_SPECIALTIES -->
|
||||
<changeSet id="003-create-vet-specialties" author="arman">
|
||||
<createTable tableName="vet_specialties">
|
||||
<column name="vet_id" type="INT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="specialty_id" type="INT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
</createTable>
|
||||
|
||||
<addForeignKeyConstraint
|
||||
baseTableName="vet_specialties"
|
||||
baseColumnNames="vet_id"
|
||||
referencedTableName="vets"
|
||||
referencedColumnNames="id"
|
||||
constraintName="fk_vet_specialties_vets"/>
|
||||
|
||||
<addForeignKeyConstraint
|
||||
baseTableName="vet_specialties"
|
||||
baseColumnNames="specialty_id"
|
||||
referencedTableName="specialties"
|
||||
referencedColumnNames="id"
|
||||
constraintName="fk_vet_specialties_specialties"/>
|
||||
|
||||
<addUniqueConstraint
|
||||
tableName="vet_specialties"
|
||||
columnNames="vet_id,specialty_id"
|
||||
constraintName="uk_vet_specialties"/>
|
||||
</changeSet>
|
||||
|
||||
<!-- TYPES -->
|
||||
<changeSet id="004-create-types" author="arman">
|
||||
<createTable tableName="types">
|
||||
<column name="id" type="INT" autoIncrement="true">
|
||||
<constraints primaryKey="true"/>
|
||||
</column>
|
||||
<column name="name" type="VARCHAR(80)"/>
|
||||
</createTable>
|
||||
<createIndex tableName="types" indexName="idx_types_name">
|
||||
<column name="name"/>
|
||||
</createIndex>
|
||||
</changeSet>
|
||||
|
||||
<!-- OWNERS -->
|
||||
<changeSet id="005-create-owners" author="arman">
|
||||
<createTable tableName="owners">
|
||||
<column name="id" type="INT" autoIncrement="true">
|
||||
<constraints primaryKey="true"/>
|
||||
</column>
|
||||
<column name="first_name" type="VARCHAR(30)"/>
|
||||
<column name="last_name" type="VARCHAR(30)"/>
|
||||
<column name="address" type="VARCHAR(255)"/>
|
||||
<column name="city" type="VARCHAR(80)"/>
|
||||
<column name="telephone" type="VARCHAR(20)"/>
|
||||
</createTable>
|
||||
<createIndex tableName="owners" indexName="idx_owners_last_name">
|
||||
<column name="last_name"/>
|
||||
</createIndex>
|
||||
</changeSet>
|
||||
|
||||
<!-- PETS -->
|
||||
<changeSet id="006-create-pets" author="arman">
|
||||
<createTable tableName="pets">
|
||||
<column name="id" type="INT" autoIncrement="true">
|
||||
<constraints primaryKey="true"/>
|
||||
</column>
|
||||
<column name="name" type="VARCHAR(30)"/>
|
||||
<column name="birth_date" type="DATE"/>
|
||||
<column name="type_id" type="INT">
|
||||
<constraints nullable="false"/>
|
||||
</column>
|
||||
<column name="owner_id" type="INT"/>
|
||||
</createTable>
|
||||
|
||||
<addForeignKeyConstraint
|
||||
baseTableName="pets"
|
||||
baseColumnNames="type_id"
|
||||
referencedTableName="types"
|
||||
referencedColumnNames="id"
|
||||
constraintName="fk_pets_types"/>
|
||||
|
||||
<addForeignKeyConstraint
|
||||
baseTableName="pets"
|
||||
baseColumnNames="owner_id"
|
||||
referencedTableName="owners"
|
||||
referencedColumnNames="id"
|
||||
constraintName="fk_pets_owners"/>
|
||||
|
||||
<createIndex tableName="pets" indexName="idx_pets_name">
|
||||
<column name="name"/>
|
||||
</createIndex>
|
||||
</changeSet>
|
||||
|
||||
<!-- VISITS -->
|
||||
<changeSet id="007-create-visits" author="arman">
|
||||
<createTable tableName="visits">
|
||||
<column name="id" type="INT" autoIncrement="true">
|
||||
<constraints primaryKey="true"/>
|
||||
</column>
|
||||
<column name="pet_id" type="INT"/>
|
||||
<column name="visit_date" type="DATE"/>
|
||||
<column name="description" type="VARCHAR(255)"/>
|
||||
</createTable>
|
||||
|
||||
<addForeignKeyConstraint
|
||||
baseTableName="visits"
|
||||
baseColumnNames="pet_id"
|
||||
referencedTableName="pets"
|
||||
referencedColumnNames="id"
|
||||
constraintName="fk_visits_pets"/>
|
||||
|
||||
<createIndex tableName="visits" indexName="idx_visits_pet_id">
|
||||
<column name="pet_id"/>
|
||||
</createIndex>
|
||||
</changeSet>
|
||||
|
||||
</databaseChangeLog>
|
||||
Loading…
Add table
Add a link
Reference in a new issue