diff --git a/anki/cards.py b/anki/cards.py index 552df6ddc..c633b114e 100644 --- a/anki/cards.py +++ b/anki/cards.py @@ -81,8 +81,9 @@ class Card(object): self.mod = intTime() self.usn = self.col.usn() # bug check - if (self.queue == 2 and self.odue): + if self.queue == 2 and self.odue: warn() + assert due < 4294967296 self.col.db.execute( """ insert or replace into cards values @@ -109,9 +110,10 @@ insert or replace into cards values def flushSched(self): self.mod = intTime() self.usn = self.col.usn() - # bug check - if (self.queue == 2 and self.odue): + # bug checks + if self.queue == 2 and self.odue: warn() + assert due < 4294967296 self.col.db.execute( """update cards set mod=?, usn=?, type=?, queue=?, due=?, ivl=?, factor=?, reps=?, diff --git a/anki/consts.py b/anki/consts.py index 094b444e5..11815097a 100644 --- a/anki/consts.py +++ b/anki/consts.py @@ -42,7 +42,7 @@ MODEL_STD = 0 MODEL_CLOZE = 1 # deck schema & syncing vars -SCHEMA_VERSION = 7 +SCHEMA_VERSION = 8 SYNC_ZIP_SIZE = int(2.5*1024*1024) SYNC_URL = os.environ.get("SYNC_URL") or "https://beta.ankiweb.net/sync/" SYNC_VER = 3 diff --git a/anki/storage.py b/anki/storage.py index c7d13da0a..5c852a549 100644 --- a/anki/storage.py +++ b/anki/storage.py @@ -112,6 +112,11 @@ def _upgrade(col, ver): "update cards set odue = 0 where (type = 1 or queue = 2) " "and not odid") col.db.execute("update col set ver = 7") + if ver < 8: + col.modSchema() + col.db.execute( + "update cards set due = due / 1000 where due > 4294967296") + col.db.execute("update col set ver = 8") def _upgradeClozeModel(col, m): m['type'] = MODEL_CLOZE