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
|
@ -35,4 +35,7 @@ build/
|
|||
*.db
|
||||
|
||||
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>
|
||||
<jacoco.version>0.8.7</jacoco.version>
|
||||
<checkstyle.version>3.1.2</checkstyle.version>
|
||||
<liquibase.version>4.3.5</liquibase.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
@ -69,6 +70,11 @@
|
|||
<artifactId>h2</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.liquibase</groupId>
|
||||
<artifactId>liquibase-core</artifactId>
|
||||
<version>${liquibase.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
|
@ -139,6 +145,48 @@
|
|||
</excludeProperties>
|
||||
</configuration>
|
||||
</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>
|
||||
<testResources>
|
||||
<testResource>
|
||||
|
|
|
@ -17,6 +17,7 @@ import javax.persistence.FetchType;
|
|||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.Index;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.OneToMany;
|
||||
import javax.persistence.Table;
|
||||
import java.util.ArrayList;
|
||||
|
@ -50,6 +51,7 @@ public class Account {
|
|||
|
||||
@JsonIgnore
|
||||
@OneToMany
|
||||
@JoinColumn(name = "message_guid", referencedColumnName = "guid")
|
||||
private final List<Message> sentMessages = new ArrayList<>();
|
||||
|
||||
public static Account of(@NonNull String name, @NonNull List<String> receivers) {
|
||||
|
|
|
@ -13,4 +13,6 @@ spring.mail.host=smtp.nclazz.de
|
|||
spring.mail.port=25
|
||||
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