Skip to content
Snippets Groups Projects

Support exports version 8 in the load_export command

Merged Valentin Rigal requested to merge support-export-v8 into master
All threads resolved!
2 files
+ 17
7
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -38,7 +38,8 @@ from arkindex.process.models import (
from arkindex.training.models import Dataset, DatasetElement, DatasetSet, Model
from arkindex.users.models import Role, User
EXPORT_VERSION = 9
EXPORT_VERSION_MIN = 8
EXPORT_VERSION_MAX = 9
TABLE_NAMES = {
"export_version",
@@ -519,13 +520,16 @@ class Command(BaseCommand):
# Check database tables
db_results = self.db.execute(SQL_TABLES_QUERY).fetchall()
if not set([table["name"] for table in db_results]) == TABLE_NAMES:
raise CommandError(f"The SQLite database {db_path} is not a correct Arkindex export")
# Database's tables must be a superset of TABLE_NAMES, so we keep compatibility when removing things
if (missing := TABLE_NAMES - set([table["name"] for table in db_results])):
raise CommandError(f"The SQLite database {db_path} miss some expected tables: {sorted(missing)}")
# Check export version
db_results = self.db.execute(SQL_VERSION_QUERY).fetchall()
if len(db_results) != 1 or db_results[0]["version"] != EXPORT_VERSION:
raise CommandError(f"The SQLite database {db_path} does not have the correct export version")
if len(db_results) != 1 or not (
EXPORT_VERSION_MIN <= db_results[0]["version"] <= EXPORT_VERSION_MAX
):
raise CommandError(f"The SQLite database {db_path} does not have a supported export version")
# Retrieve corpus name
date = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M")
Loading