(db)
| 936 | |
| 937 | |
| 938 | def verify_database_schema(db): |
| 939 | if not Versions.table_exists(): |
| 940 | db.create_tables([Versions]) |
| 941 | |
| 942 | if ScannedLocation.table_exists(): |
| 943 | # Versions table didn't exist, but there were tables. This must mean the user |
| 944 | # is coming from a database that existed before we started tracking the schema |
| 945 | # version. Perform a full upgrade. |
| 946 | InsertQuery(Versions, {Versions.key: 'schema_version', Versions.val: 0}).execute() |
| 947 | database_migrate(db, 0) |
| 948 | else: |
| 949 | InsertQuery(Versions, {Versions.key: 'schema_version', Versions.val: db_schema_version}).execute() |
| 950 | |
| 951 | else: |
| 952 | db_ver = Versions.get(Versions.key == 'schema_version').val |
| 953 | |
| 954 | if db_ver < db_schema_version: |
| 955 | database_migrate(db, db_ver) |
| 956 | |
| 957 | elif db_ver > db_schema_version: |
| 958 | log.error("Your database version (%i) appears to be newer than the code supports (%i).", |
| 959 | db_ver, db_schema_version) |
| 960 | log.error("Please upgrade your code base or drop all tables in your database.") |
| 961 | sys.exit(1) |
| 962 | |
| 963 | |
| 964 | def database_migrate(db, old_ver): |
no test coverage detected