如果我们有迁移,请执行以下操作:
V1_6__six.sql
V1_7__seven.sql
V1_8__eight.sql
V1_9__nine.sql
我们应该为下一个版本使用什么?
如果我们在V1_10
之后使用V1__9
?或者我们是否需要在{1}}前面添加单个数字版本号?
真的问题是:版本号是按数字还是按字母顺序排序?
答案 0 :(得分:6)
用一个词来说:数字。正如预期的那样。
答案 1 :(得分:3)
有关排序如何发生的明确答案,您可以参考代码。这个test特别有帮助。
@Test
public void testNumber() {
final MigrationVersion a1 = MigrationVersion.fromVersion("1.2.13.3");
final MigrationVersion a2 = MigrationVersion.fromVersion("1.2.3.3");
assertTrue(a1.compareTo(a2) > 0);
}
@Test
public void testLength1() {
final MigrationVersion a1 = MigrationVersion.fromVersion("1.2.1.3");
final MigrationVersion a2 = MigrationVersion.fromVersion("1.2.1");
assertTrue(a1.compareTo(a2) > 0);
}
@Test
public void testLength2() {
final MigrationVersion a1 = MigrationVersion.fromVersion("1.2.1");
final MigrationVersion a2 = MigrationVersion.fromVersion("1.2.1.1");
assertTrue(a1.compareTo(a2) < 0);
}
@Test
public void leadingZeroes() {
final MigrationVersion v1 = MigrationVersion.fromVersion("1.0");
final MigrationVersion v2 = MigrationVersion.fromVersion("001.0");
assertTrue(v1.compareTo(v2) == 0);
assertTrue(v1.equals(v2));
assertEquals(v1.hashCode(), v2.hashCode());
}