#506 - Changes to DB Migration, support run on startup and external version numbering

This commit is contained in:
Robin Bygrave
2015-12-24 16:41:06 +13:00
parent 03a9aa3dec
commit be91e3f3f7
10 changed files with 566 additions and 156 deletions
@@ -1,39 +0,0 @@
package com.avaje.ebean.dbmigration.model;
import org.junit.Test;
import static org.assertj.core.api.Assertions.*;
public class MigrationModelTest {
@Test
public void testRead() throws Exception {
MigrationModel migrationModel = new MigrationModel("dbmigration/app1");
ModelContainer model = migrationModel.read();
assertThat(migrationModel.getReadVersions()).contains("1.0","1.1","2.0");
assertThat(model.getTable("v10_table")).isNotNull();
}
@Test
public void testRead_leadingSlash() throws Exception {
MigrationModel migrationModel = new MigrationModel("/dbmigration/app1");
ModelContainer model = migrationModel.read();
assertThat(migrationModel.getReadVersions()).contains("1.0","1.1","2.0");
assertThat(model.getTable("v10_table")).isNotNull();
}
@Test
public void testRead_trailingSlash() throws Exception {
MigrationModel migrationModel = new MigrationModel("/dbmigration/app1/");
ModelContainer model = migrationModel.read();
assertThat(migrationModel.getReadVersions()).contains("1.0","1.1","2.0");
assertThat(model.getTable("v10_table")).isNotNull();
}
}
@@ -0,0 +1,47 @@
package com.avaje.ebean.dbmigration.model;
import org.junit.Test;
import static org.assertj.core.api.StrictAssertions.assertThat;
public class MigrationVersionTest {
@Test
public void testParse() throws Exception {
MigrationVersion v0 = MigrationVersion.parse("1.1.1_2__Foo");
MigrationVersion v1 = MigrationVersion.parse("1.1.1.2_junk");
MigrationVersion v2 = MigrationVersion.parse("1.1_1.2_foo");
assertThat(v0.compareTo(v1)).isEqualTo(0);
assertThat(v1.compareTo(v0)).isEqualTo(0);
assertThat(v1.compareTo(v2)).isEqualTo(0);
}
@Test
public void testNextVersion() {
assertThat(MigrationVersion.parse("2").nextVersion()).isEqualTo("3");
assertThat(MigrationVersion.parse("1.0").nextVersion()).isEqualTo("1.1");
assertThat(MigrationVersion.parse("2.0.b34").nextVersion()).isEqualTo("2.1");
assertThat(MigrationVersion.parse("1.1.1_2__Foo").nextVersion()).isEqualTo("1.1.1.3");
assertThat(MigrationVersion.parse("1.1.1.2_junk").nextVersion()).isEqualTo("1.1.1.3");
}
@Test
public void testCompareTo() throws Exception {
MigrationVersion v1 = MigrationVersion.parse("1.1.1.2_junk");
MigrationVersion v2 = MigrationVersion.parse("2.1_1.2_junk");
MigrationVersion v3 = MigrationVersion.parse("1.2_1.2_junk");
MigrationVersion v4 = MigrationVersion.parse("1.1_1.3_junk");
MigrationVersion v5 = MigrationVersion.parse("1.1.1.1_junk");
assertThat(v1.compareTo(v2)).isEqualTo(-1);
assertThat(v1.compareTo(v3)).isEqualTo(-1);
assertThat(v1.compareTo(v4)).isEqualTo(-1);
assertThat(v1.compareTo(v5)).isEqualTo(1);
}
}