diff --git a/terracotta/migrations/v0_10.py b/terracotta/migrations/v0_10.py new file mode 100644 index 00000000..e8cc4045 --- /dev/null +++ b/terracotta/migrations/v0_10.py @@ -0,0 +1,6 @@ +up_version = (0, 10) +down_version = (0, 9) + +upgrade_sql = [ + "UPDATE terracotta SET version='0.10.0'", +] diff --git a/terracotta/migrations/v0_11.py b/terracotta/migrations/v0_11.py new file mode 100644 index 00000000..2bd7aaa1 --- /dev/null +++ b/terracotta/migrations/v0_11.py @@ -0,0 +1,6 @@ +up_version = (0, 11) +down_version = (0, 10) + +upgrade_sql = [ + "UPDATE terracotta SET version='0.11.0'", +] diff --git a/terracotta/scripts/migrate.py b/terracotta/scripts/migrate.py index 3bbfb10a..73e56963 100644 --- a/terracotta/scripts/migrate.py +++ b/terracotta/scripts/migrate.py @@ -61,7 +61,9 @@ def migrate(database: str, to_version: str, from_version: str, yes: bool) -> Non while current_version != to_version_tuple: if current_version not in MIGRATIONS: - raise RuntimeError("Unexpected error") + raise RuntimeError( + f"Unexpected error, missing migration from version: {current_version} to {to_version_tuple}" + ) migration = MIGRATIONS[current_version] migration_chain.append(migration) diff --git a/tests/scripts/test_migrate.py b/tests/scripts/test_migrate.py index fc9063d9..b59d0552 100644 --- a/tests/scripts/test_migrate.py +++ b/tests/scripts/test_migrate.py @@ -1,4 +1,3 @@ -import pytest from click.testing import CliRunner @@ -31,7 +30,7 @@ def migration_testfunc(v07_db, raster_file): ], ) - assert result.exit_code == 0 + assert result.exit_code == 0, result.exception assert "Upgrade path found" in result.output driver_updated = get_driver(str(v07_db), provider="sqlite") @@ -68,9 +67,4 @@ def test_migrate_next(v07_db, raster_file, monkeypatch, force_reload): next_major_version = (current_version[0], current_version[1] + 1, 0) m.setattr(terracotta, "__version__", ".".join(map(str, next_major_version))) - from terracotta.migrations import MIGRATIONS - - if next_major_version[:2] not in [m.up_version for m in MIGRATIONS.values()]: - pytest.skip("No migration available for next major version") - migration_testfunc(v07_db, raster_file)