add progress information to deck upgrade, fix legacy file format = 1

This commit is contained in:
Damien Elmes 2009-03-13 05:36:44 +09:00
parent b527d31499
commit 0743f87187

View file

@ -47,6 +47,8 @@ REV_CARDS_NEW_FIRST = 1
REV_CARDS_DUE_FIRST = 2 REV_CARDS_DUE_FIRST = 2
REV_CARDS_RANDOM = 3 REV_CARDS_RANDOM = 3
DECK_VERSION = 30
# parts of the code assume we only have one deck # parts of the code assume we only have one deck
decksTable = Table( decksTable = Table(
'decks', metadata, 'decks', metadata,
@ -54,7 +56,7 @@ decksTable = Table(
Column('created', Float, nullable=False, default=time.time), Column('created', Float, nullable=False, default=time.time),
Column('modified', Float, nullable=False, default=time.time), Column('modified', Float, nullable=False, default=time.time),
Column('description', UnicodeText, nullable=False, default=u""), Column('description', UnicodeText, nullable=False, default=u""),
Column('version', Integer, nullable=False, default=30), Column('version', Integer, nullable=False, default=DECK_VERSION),
Column('currentModelId', Integer, ForeignKey("models.id")), Column('currentModelId', Integer, ForeignKey("models.id")),
# syncing # syncing
Column('syncName', UnicodeText), Column('syncName', UnicodeText),
@ -2453,6 +2455,12 @@ order by priority desc, due desc""")
def _upgradeDeck(deck, path): def _upgradeDeck(deck, path):
"Upgrade deck to the latest version." "Upgrade deck to the latest version."
if deck.version < DECK_VERSION:
prog = True
deck.startProgress()
deck.updateProgress(_("Upgrading Deck..."))
else:
prog = False
deck.path = path deck.path = path
if deck.version == 0: if deck.version == 0:
# new columns # new columns
@ -2728,9 +2736,13 @@ on reviewHistory (cardId, time)""")
deck.s.commit() deck.s.commit()
# this check we do regardless of version number since doing it on init # this check we do regardless of version number since doing it on init
# seems to crash # seems to crash
if deck.s.scalar("pragma page_size") == 1024: if (deck.s.scalar("pragma page_size") == 1024 or
deck.s.scalar("pragma page_size = 4096") deck.s.scalar("pragma legacy_file_format") == 1):
deck.s.execute("pragma page_size = 4096")
deck.s.execute("pragma legacy_file_format = 0")
deck.s.scalar("vacuum") deck.s.scalar("vacuum")
if prog:
deck.finishProgress()
return deck return deck
_upgradeDeck = staticmethod(_upgradeDeck) _upgradeDeck = staticmethod(_upgradeDeck)