Don't migrate old databases

This commit is contained in:
Ruud committed 2014-10-05 11:05:56 +02:00
1 parent 230b7f47cc
commit 9de8ed2dee
1 file changed
+20 -5
+20 -5
View File
@@ -2,6 +2,7 @@ import json
import os import os
import time import time
import traceback import traceback
from sqlite3 import OperationalError
from CodernityDB.database import RecordNotFound from CodernityDB.database import RecordNotFound
from CodernityDB.index import IndexException, IndexNotFoundException, IndexConflict from CodernityDB.index import IndexException, IndexNotFoundException, IndexConflict
@@ -9,7 +10,7 @@ from couchpotato import CPLog
from couchpotato.api import addApiView from couchpotato.api import addApiView
from couchpotato.core.event import addEvent, fireEvent, fireEventAsync from couchpotato.core.event import addEvent, fireEvent, fireEventAsync
from couchpotato.core.helpers.encoding import toUnicode, sp 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__) log = CPLog(__name__)
@@ -311,6 +312,9 @@ class Database(object):
} }
migrate_data = {} migrate_data = {}
rename_old = False
try:
c = conn.cursor() c = conn.cursor()
@@ -325,6 +329,7 @@ class Database(object):
if ml == 'category': if ml == 'category':
migrate_data[ml] = {} migrate_data[ml] = {}
else: else:
rename_old = True
raise raise
for p in c.fetchall(): for p in c.fetchall():
@@ -612,11 +617,21 @@ class Database(object):
log.info('Total migration took %s', time.time() - migrate_start) log.info('Total migration took %s', time.time() - migrate_start)
log.info('=' * 30) 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 # rename old database
log.info('Renaming old database to %s ', old_db + '.old') if rename_old:
os.rename(old_db, old_db + '.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'): 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'): 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))