Added Liquibase DB Migration. Closes #17
nclazz/nclazz-mail-relay/pipeline/head This commit looks good
Details
nclazz/nclazz-mail-relay/pipeline/head This commit looks good
Details
parent
11bd724c8f
commit
5efb429bb8
|
@ -36,3 +36,6 @@ build/
|
||||||
|
|
||||||
application-dev.properties
|
application-dev.properties
|
||||||
application-dev.yml
|
application-dev.yml
|
||||||
|
|
||||||
|
### generated by liuibase-hiernate5 https://github.com/liquibase/liquibase/issues/2196
|
||||||
|
derby.log
|
48
pom.xml
48
pom.xml
|
@ -32,6 +32,7 @@
|
||||||
<spotbugs.version>4.2.0</spotbugs.version>
|
<spotbugs.version>4.2.0</spotbugs.version>
|
||||||
<jacoco.version>0.8.7</jacoco.version>
|
<jacoco.version>0.8.7</jacoco.version>
|
||||||
<checkstyle.version>3.1.2</checkstyle.version>
|
<checkstyle.version>3.1.2</checkstyle.version>
|
||||||
|
<liquibase.version>4.3.5</liquibase.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@ -69,6 +70,11 @@
|
||||||
<artifactId>h2</artifactId>
|
<artifactId>h2</artifactId>
|
||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.liquibase</groupId>
|
||||||
|
<artifactId>liquibase-core</artifactId>
|
||||||
|
<version>${liquibase.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
@ -139,6 +145,48 @@
|
||||||
</excludeProperties>
|
</excludeProperties>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.liquibase</groupId>
|
||||||
|
<artifactId>liquibase-maven-plugin</artifactId>
|
||||||
|
<version>${liquibase.version}</version>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.liquibase.ext</groupId>
|
||||||
|
<artifactId>liquibase-hibernate5</artifactId>
|
||||||
|
<version>4.5.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
|
<version>2.5.2</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.validation</groupId>
|
||||||
|
<artifactId>validation-api</artifactId>
|
||||||
|
<version>2.0.1.Final</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<version>1.4.200</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<configuration>
|
||||||
|
<changeLogFile>src/main/resources/db/master.xml</changeLogFile>
|
||||||
|
<diffChangeLogFile>src/main/resources/db/changelogs/diff/_changelog.xml</diffChangeLogFile>
|
||||||
|
|
||||||
|
<driver>org.h2.Driver</driver>
|
||||||
|
<url>jdbc:h2:~/migration</url>
|
||||||
|
<username>sa</username>
|
||||||
|
|
||||||
|
<referenceUrl>
|
||||||
|
hibernate:spring:de.nclazz.service.mailrelay?dialect=org.hibernate.dialect.H2Dialect&
|
||||||
|
hibernate.physical\_naming\_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&
|
||||||
|
hibernate.implicit\_naming\_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
|
||||||
|
</referenceUrl>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
<testResources>
|
<testResources>
|
||||||
<testResource>
|
<testResource>
|
||||||
|
|
|
@ -17,6 +17,7 @@ import javax.persistence.FetchType;
|
||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
import javax.persistence.Index;
|
import javax.persistence.Index;
|
||||||
|
import javax.persistence.JoinColumn;
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -50,6 +51,7 @@ public class Account {
|
||||||
|
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
@OneToMany
|
@OneToMany
|
||||||
|
@JoinColumn(name = "message_guid", referencedColumnName = "guid")
|
||||||
private final List<Message> sentMessages = new ArrayList<>();
|
private final List<Message> sentMessages = new ArrayList<>();
|
||||||
|
|
||||||
public static Account of(@NonNull String name, @NonNull List<String> receivers) {
|
public static Account of(@NonNull String name, @NonNull List<String> receivers) {
|
||||||
|
|
|
@ -14,3 +14,5 @@ spring.mail.port=25
|
||||||
spring.mail.protocol=smtp
|
spring.mail.protocol=smtp
|
||||||
|
|
||||||
nclazz.auth.token=${AUTH_TOKEN}
|
nclazz.auth.token=${AUTH_TOKEN}
|
||||||
|
|
||||||
|
spring.liquibase.change-log=classpath:db/master.xml
|
|
@ -0,0 +1,75 @@
|
||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<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.1.xsd">
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-1">
|
||||||
|
<createTable tableName="accounts">
|
||||||
|
<column name="guid" type="CHAR(36)">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="accountsPK"/>
|
||||||
|
</column>
|
||||||
|
<column name="name" type="VARCHAR(255)"/>
|
||||||
|
<column name="token" type="VARCHAR(16)"/>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-2">
|
||||||
|
<createTable tableName="accounts_receivers">
|
||||||
|
<column name="account_guid" type="CHAR(36)">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="receivers" type="VARCHAR(255)"/>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-3">
|
||||||
|
<createTable tableName="accounts_sent_messages">
|
||||||
|
<column name="account_guid" type="CHAR(36)">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="sent_messages_guid" type="CHAR(36)">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-4">
|
||||||
|
<createTable tableName="messages">
|
||||||
|
<column name="guid" type="CHAR(36)">
|
||||||
|
<constraints nullable="false" primaryKey="true" primaryKeyName="messagesPK"/>
|
||||||
|
</column>
|
||||||
|
<column name="account_guid" type="CHAR(36)"/>
|
||||||
|
<column name="subject" type="VARCHAR(255)"/>
|
||||||
|
<column name="content" type="CLOB"/>
|
||||||
|
<column name="from_address" type="VARCHAR(255)"/>
|
||||||
|
<column name="created_at" type="TIMESTAMP"/>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-5">
|
||||||
|
<createTable tableName="messages_receivers">
|
||||||
|
<column name="message_guid" type="CHAR(36)">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="receivers" type="VARCHAR(255)"/>
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-6">
|
||||||
|
<addUniqueConstraint columnNames="sent_messages_guid" constraintName="UK_p8yctc0geuhssv7ghdsq6rhmu" tableName="accounts_sent_messages"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-7">
|
||||||
|
<createIndex indexName="IDX8yxeow0t327h4pp39wl7lnali" tableName="accounts">
|
||||||
|
<column name="token"/>
|
||||||
|
</createIndex>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-8">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="message_guid" baseTableName="messages_receivers" constraintName="FK9vooi7dir04p8we6gides1jdy" deferrable="false" initiallyDeferred="false" referencedColumnNames="guid" referencedTableName="messages" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-9">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="account_guid" baseTableName="accounts_receivers" constraintName="FKamxf2r0aqd1xkuumikjpeostp" deferrable="false" initiallyDeferred="false" referencedColumnNames="guid" referencedTableName="accounts" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-10">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="account_guid" baseTableName="messages" constraintName="FKasa6p4yvkebuk2u1nrwfm0lv2" deferrable="false" initiallyDeferred="false" referencedColumnNames="guid" referencedTableName="accounts" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-11">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="sent_messages_guid" baseTableName="accounts_sent_messages" constraintName="FKnd7gj59ljxgt338iijbdu3p22" deferrable="false" initiallyDeferred="false" referencedColumnNames="guid" referencedTableName="messages" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="Niclas Thobaben (generated)" id="1644939549744-12">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="account_guid" baseTableName="accounts_sent_messages" constraintName="FKoxyn335xryw98elniqfjyqko5" deferrable="false" initiallyDeferred="false" referencedColumnNames="guid" referencedTableName="accounts" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
|
||||||
|
<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.1.xsd">
|
||||||
|
<changeSet author="NiclasThobabenDev (generated)" id="1644940187120-1">
|
||||||
|
<addColumn tableName="messages">
|
||||||
|
<column name="message_guid" type="char(36)"/>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="NiclasThobabenDev (generated)" id="1644940187120-2">
|
||||||
|
<addForeignKeyConstraint baseColumnNames="message_guid" baseTableName="messages" constraintName="FKih9hqr479lv79cxjf1r5heo6l" deferrable="false" initiallyDeferred="false" referencedColumnNames="guid" referencedTableName="accounts" validate="true"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="NiclasThobabenDev (generated)" id="1644940187120-3">
|
||||||
|
<dropForeignKeyConstraint baseTableName="ACCOUNTS_SENT_MESSAGES" constraintName="FKND7GJ59LJXGT338IIJBDU3P22"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="NiclasThobabenDev (generated)" id="1644940187120-4">
|
||||||
|
<dropForeignKeyConstraint baseTableName="ACCOUNTS_SENT_MESSAGES" constraintName="FKOXYN335XRYW98ELNIQFJYQKO5"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="NiclasThobabenDev (generated)" id="1644940187120-5">
|
||||||
|
<dropUniqueConstraint constraintName="UK_P8YCTC0GEUHSSV7GHDSQ6RHMU" tableName="ACCOUNTS_SENT_MESSAGES"/>
|
||||||
|
</changeSet>
|
||||||
|
<changeSet author="NiclasThobabenDev (generated)" id="1644940187120-6">
|
||||||
|
<dropTable tableName="ACCOUNTS_SENT_MESSAGES"/>
|
||||||
|
</changeSet>
|
||||||
|
</databaseChangeLog>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<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-3.5.xsd">
|
||||||
|
|
||||||
|
<include file="changelogs/01-jpa-auto-ddl-schema.xml" relativeToChangelogFile="true"/>
|
||||||
|
<include file="changelogs/02-renamed-join-columns.xml" relativeToChangelogFile="true"/>
|
||||||
|
|
||||||
|
</databaseChangeLog>
|
Loading…
Reference in New Issue