How are version numbers sorted by span?

If we have migrations like:

V1_6__six.sql V1_7__seven.sql V1_8__eight.sql V1_9__nine.sql 

What should we use for the next version?

If we use V1_10 , will this happen after V1__9 ? Or would we need a number prefix with a number with a number using 0 ?

In fact, the question arises: are version numbers sorted numerically or alphabetically?

+8
flyway
source share
2 answers

In a word: numerically. As expected for the number.

+6
source share

For a final answer on how sorting happens, you can refer to the code. This test is especially useful.

 @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()); } 
0
source share

All Articles