|
|
@ -2,6 +2,7 @@ import json |
|
|
|
import os |
|
|
|
import time |
|
|
|
import traceback |
|
|
|
from sqlite3 import OperationalError |
|
|
|
|
|
|
|
from CodernityDB.database import RecordNotFound |
|
|
|
from CodernityDB.index import IndexException, IndexNotFoundException, IndexConflict |
|
|
@ -9,7 +10,7 @@ from couchpotato import CPLog |
|
|
|
from couchpotato.api import addApiView |
|
|
|
from couchpotato.core.event import addEvent, fireEvent, fireEventAsync |
|
|
|
from couchpotato.core.helpers.encoding import toUnicode, sp |
|
|
|
from couchpotato.core.helpers.variable import getImdb, tryInt |
|
|
|
from couchpotato.core.helpers.variable import getImdb, tryInt, randomString |
|
|
|
|
|
|
|
|
|
|
|
log = CPLog(__name__) |
|
|
@ -311,6 +312,9 @@ class Database(object): |
|
|
|
} |
|
|
|
|
|
|
|
migrate_data = {} |
|
|
|
rename_old = False |
|
|
|
|
|
|
|
try: |
|
|
|
|
|
|
|
c = conn.cursor() |
|
|
|
|
|
|
@ -325,6 +329,7 @@ class Database(object): |
|
|
|
if ml == 'category': |
|
|
|
migrate_data[ml] = {} |
|
|
|
else: |
|
|
|
rename_old = True |
|
|
|
raise |
|
|
|
|
|
|
|
for p in c.fetchall(): |
|
|
@ -612,11 +617,21 @@ class Database(object): |
|
|
|
log.info('Total migration took %s', time.time() - migrate_start) |
|
|
|
log.info('=' * 30) |
|
|
|
|
|
|
|
rename_old = True |
|
|
|
|
|
|
|
except OperationalError: |
|
|
|
log.error('Migrating from faulty database, probably a (too) old version: %s', traceback.format_exc()) |
|
|
|
except: |
|
|
|
log.error('Migration failed: %s', traceback.format_exc()) |
|
|
|
|
|
|
|
|
|
|
|
# rename old database |
|
|
|
log.info('Renaming old database to %s ', old_db + '.old') |
|
|
|
os.rename(old_db, old_db + '.old') |
|
|
|
if rename_old: |
|
|
|
random = randomString() |
|
|
|
log.info('Renaming old database to %s ', '%s.%s_old' % (old_db, random)) |
|
|
|
os.rename(old_db, '%s.%s_old' % (old_db, random)) |
|
|
|
|
|
|
|
if os.path.isfile(old_db + '-wal'): |
|
|
|
os.rename(old_db + '-wal', old_db + '-wal.old') |
|
|
|
os.rename(old_db + '-wal', '%s-wal.%s_old' % (old_db, random)) |
|
|
|
if os.path.isfile(old_db + '-shm'): |
|
|
|
os.rename(old_db + '-shm', old_db + '-shm.old') |
|
|
|
os.rename(old_db + '-shm', '%s-shm.%s_old' % (old_db, random)) |
|
|
|