flyway如何排序版本号?

Mar*_*oft 10 flyway

如果我们有以下迁移:

V1_6__six.sql
V1_7__seven.sql
V1_8__eight.sql
V1_9__nine.sql
Run Code Online (Sandbox Code Playgroud)

我们应该为下一个版本使用什么?

如果我们使用V1_10后来的意志V1__9?或者我们需要在单个数字版本号前加一个0

真的问题是:版本号是按数字还是按字母顺序排序的?

Dav*_*d W 7

有关排序如何发生的明确答案,您可以参考代码。这个测试特别有帮助。

@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());
}
Run Code Online (Sandbox Code Playgroud)


Axe*_*ine 6

用一个词来说:数字.正如预期的那样.

  • 为什么我在官方文档中找不到这些信息?https://flywaydb.org/documentation/migrations#naming (2认同)