forked from openlp/openlp
Finally have bullet-proof upgrade methods.
This commit is contained in:
parent
9430e569f4
commit
e15865c117
@ -32,7 +32,7 @@ backend for the Songs plugin
|
||||
"""
|
||||
|
||||
from sqlalchemy import Column, types
|
||||
from sqlalchemy.sql.expression import func, false, null
|
||||
from sqlalchemy.sql.expression import func, false, null, text
|
||||
from openlp.core.lib.db import get_upgrade_op
|
||||
|
||||
__version__ = 3
|
||||
@ -53,7 +53,7 @@ def upgrade_1(session, metadata):
|
||||
op = get_upgrade_op(session)
|
||||
op.drop_table(u'media_files_songs')
|
||||
op.add_column(u'media_files', Column(u'song_id', types.Integer(), server_default=null()))
|
||||
op.add_column(u'media_files', Column(u'weight', types.Integer(), server_default=0))
|
||||
op.add_column(u'media_files', Column(u'weight', types.Integer(), server_default=text(u'0')))
|
||||
if metadata.bind.url.get_dialect().name != 'sqlite':
|
||||
# SQLite doesn't support ALTER TABLE ADD CONSTRAINT
|
||||
op.create_foreign_key(u'fk_media_files_song_id', u'media_files', u'songs', [u'song_id', u'id'])
|
||||
@ -66,8 +66,8 @@ def upgrade_2(session, metadata):
|
||||
This upgrade adds a create_date and last_modified date to the songs table
|
||||
"""
|
||||
op = get_upgrade_op(session)
|
||||
op.add_column(u'songs', Column(u'create_date', types.DateTime(), server_default=func.now()))
|
||||
op.add_column(u'songs', Column(u'last_modified', types.DateTime(), server_default=func.now()))
|
||||
op.add_column(u'songs', Column(u'create_date', types.DateTime(), default=func.now()))
|
||||
op.add_column(u'songs', Column(u'last_modified', types.DateTime(), default=func.now()))
|
||||
|
||||
|
||||
def upgrade_3(session, metadata):
|
||||
@ -77,5 +77,8 @@ def upgrade_3(session, metadata):
|
||||
This upgrade adds a temporary song flag to the songs table
|
||||
"""
|
||||
op = get_upgrade_op(session)
|
||||
if metadata.bind.url.get_dialect().name == 'sqlite':
|
||||
op.add_column(u'songs', Column(u'temporary', types.Boolean(create_constraint=False), server_default=false()))
|
||||
else:
|
||||
op.add_column(u'songs', Column(u'temporary', types.Boolean(), server_default=false()))
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user