tools/initdb.py now sets the database schema_version.
This commit is contained in:
parent
36af0bbfed
commit
272240ba41
|
@ -45,17 +45,8 @@ class Schema_upgrader:
|
||||||
@param to_version: the desired version to upgrade to, as a string
|
@param to_version: the desired version to upgrade to, as a string
|
||||||
"""
|
"""
|
||||||
to_version = self.version_string_to_tuple( to_version )
|
to_version = self.version_string_to_tuple( to_version )
|
||||||
|
from_version = self.schema_version( self.__database )
|
||||||
try:
|
self.__database.commit()
|
||||||
from_version = self.__database.select_one( tuple, "select * from schema_version;" );
|
|
||||||
# if there's no schema version table, assume the from_version is 1.5.4, which was the last
|
|
||||||
# version not to include a schema_version table
|
|
||||||
except:
|
|
||||||
self.__database.rollback()
|
|
||||||
from_version = ( 1, 5, 4 )
|
|
||||||
self.__database.execute( "create table schema_version ( major numeric, minor numeric, release numeric );", commit = False );
|
|
||||||
self.__database.execute( "insert into schema_version values ( %s, %s, %s );" % from_version, commit = False );
|
|
||||||
self.__database.commit()
|
|
||||||
|
|
||||||
# if the database schema version is already equal to to_version, there's nothing to do
|
# if the database schema version is already equal to to_version, there's nothing to do
|
||||||
if to_version == from_version:
|
if to_version == from_version:
|
||||||
|
@ -96,6 +87,22 @@ class Schema_upgrader:
|
||||||
self.__database.commit()
|
self.__database.commit()
|
||||||
print "successfully upgraded database schema"
|
print "successfully upgraded database schema"
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def schema_version( database, default_version = None ):
|
||||||
|
try:
|
||||||
|
schema_version = database.select_one( tuple, "select * from schema_version;" );
|
||||||
|
# if there's no schema version table, then use the default version given. if there's no default
|
||||||
|
# version, then assume the from_version is 1.5.4, which was the last version not to include a
|
||||||
|
# schema_version table
|
||||||
|
except:
|
||||||
|
database.rollback()
|
||||||
|
schema_version = default_version or ( 1, 5, 4 )
|
||||||
|
|
||||||
|
database.execute( "create table schema_version ( major numeric, minor numeric, release numeric );", commit = False );
|
||||||
|
database.execute( "insert into schema_version values ( %s, %s, %s );" % schema_version, commit = False );
|
||||||
|
|
||||||
|
return schema_version
|
||||||
|
|
||||||
def apply_schema_delta( self, version, filename ):
|
def apply_schema_delta( self, version, filename ):
|
||||||
"""
|
"""
|
||||||
Upgrade the database from its current version to a given version, applying only the named
|
Upgrade the database from its current version to a given version, applying only the named
|
||||||
|
|
|
@ -4,9 +4,11 @@ import os
|
||||||
import os.path
|
import os.path
|
||||||
import sys
|
import sys
|
||||||
from controller.Database import Database
|
from controller.Database import Database
|
||||||
|
from controller.Schema_upgrader import Schema_upgrader
|
||||||
from model.Notebook import Notebook
|
from model.Notebook import Notebook
|
||||||
from model.Note import Note
|
from model.Note import Note
|
||||||
from model.User import User
|
from model.User import User
|
||||||
|
from config.Version import VERSION
|
||||||
|
|
||||||
|
|
||||||
class Initializer( object ):
|
class Initializer( object ):
|
||||||
|
@ -45,6 +47,9 @@ class Initializer( object ):
|
||||||
if desktop is True:
|
if desktop is True:
|
||||||
self.create_desktop_user()
|
self.create_desktop_user()
|
||||||
|
|
||||||
|
version = Schema_upgrader.version_string_to_tuple( VERSION )
|
||||||
|
Schema_upgrader.schema_version( database, default_version = version )
|
||||||
|
|
||||||
self.database.commit()
|
self.database.commit()
|
||||||
|
|
||||||
def create_main_notebook( self ):
|
def create_main_notebook( self ):
|
||||||
|
@ -96,6 +101,17 @@ class Initializer( object ):
|
||||||
|
|
||||||
users.create_user( u"desktopuser" )
|
users.create_user( u"desktopuser" )
|
||||||
|
|
||||||
|
def set_schema_version( self ):
|
||||||
|
try:
|
||||||
|
from_version = self.__database.select_one( tuple, "select * from schema_version;" );
|
||||||
|
# if there's no schema version table, set the schema to the current version
|
||||||
|
except:
|
||||||
|
self.__database.rollback()
|
||||||
|
from_version = ( 1, 5, 4 )
|
||||||
|
self.__database.execute( "create table schema_version ( major numeric, minor numeric, release numeric );", commit = False );
|
||||||
|
self.__database.execute( "insert into schema_version values ( %s, %s, %s );" % from_version, commit = False );
|
||||||
|
self.__database.commit()
|
||||||
|
|
||||||
|
|
||||||
def main( args = None ):
|
def main( args = None ):
|
||||||
nuke = False
|
nuke = False
|
||||||
|
|
Reference in New Issue