feat: add Liquibase migrations
This commit is contained in:
@@ -6,6 +6,9 @@ spring:
|
||||
jpa:
|
||||
hibernate:
|
||||
ddl-auto: validate
|
||||
show-sql: false
|
||||
liquibase:
|
||||
change-log: classpath:db/migration/changelog-master.xml
|
||||
|
||||
server:
|
||||
port: 8080
|
||||
|
||||
28
src/main/resources/db/migration/001-create-users.xml
Normal file
28
src/main/resources/db/migration/001-create-users.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?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.20.xsd"
|
||||
>
|
||||
|
||||
<changeSet id="001" author="bank">
|
||||
<createTable tableName="users">
|
||||
<column name="id" type="BIGSERIAL" autoIncrement="true">
|
||||
<constraints primaryKey="true" nullable="false" />
|
||||
</column>
|
||||
<column name="username" type="VARCHAR(50)">
|
||||
<constraints nullable="false" unique="true" />
|
||||
</column>
|
||||
<column name="password" type="VARCHAR(255)">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="email" type="VARCHAR(100)">
|
||||
<constraints nullable="false" unique="true" />
|
||||
</column>
|
||||
<column name="role" type="VARCHAR(20)">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
</createTable>
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
38
src/main/resources/db/migration/002-create-cards.xml
Normal file
38
src/main/resources/db/migration/002-create-cards.xml
Normal file
@@ -0,0 +1,38 @@
|
||||
<?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.20.xsd"
|
||||
>
|
||||
|
||||
<changeSet id="002" author="bank">
|
||||
<createTable tableName="cards">
|
||||
<column name="id" type="BIGSERIAL" autoIncrement="true">
|
||||
<constraints primaryKey="true" nullable="false" />
|
||||
</column>
|
||||
<column name="card_number_encrypted" type="TEXT">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="owner_id" type="BIGINT">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="expiry_date" type="DATE">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="status" type="VARCHAR(20)">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
<column name="balance" type="DECIMAL(19,2)">
|
||||
<constraints nullable="false" />
|
||||
</column>
|
||||
</createTable>
|
||||
<addForeignKeyConstraint
|
||||
baseTableName="cards"
|
||||
baseColumnNames="owner_id"
|
||||
referencedTableName="users"
|
||||
referencedColumnNames="id"
|
||||
constraintName="fk_cards_owner"
|
||||
/>
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
21
src/main/resources/db/migration/003-insert-admin.xml
Normal file
21
src/main/resources/db/migration/003-insert-admin.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?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.20.xsd"
|
||||
>
|
||||
|
||||
<changeSet id="003" author="bank">
|
||||
<!-- Default admin: admin / admin123 -->
|
||||
<insert tableName="users">
|
||||
<column name="username" value="admin" />
|
||||
<column name="email" value="admin@bank.com" />
|
||||
<column
|
||||
name="password"
|
||||
value="$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBpwTTyDrPbVJW"
|
||||
/>
|
||||
<column name="role" value="ROLE_ADMIN" />
|
||||
</insert>
|
||||
</changeSet>
|
||||
</databaseChangeLog>
|
||||
12
src/main/resources/db/migration/changelog-master.xml
Normal file
12
src/main/resources/db/migration/changelog-master.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?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.20.xsd"
|
||||
>
|
||||
|
||||
<include file="classpath:db/migration/001-create-users.xml" />
|
||||
<include file="classpath:db/migration/002-create-cards.xml" />
|
||||
<include file="classpath:db/migration/003-insert-admin.xml" />
|
||||
</databaseChangeLog>
|
||||
Reference in New Issue
Block a user