Changeset - bc2e030bff7f
[Not reviewed]
default
0 1 0
Mads Kiilerich - 11 years ago 2014-09-24 14:24:40
madski@unity3d.com
rebranddb: update user extern_type and _name to 'internal' instead of 'kallithea' (Issue #38)
1 file changed with 5 insertions and 4 deletions:
0 comments (0 inline, 0 general)
kallithea/bin/rebranddb.py
Show inline comments
 
@@ -67,32 +67,35 @@ def do_migrate(db, old, new):
 
            t = metadata.tables[old_settings_name]
 
            print 'Renaming', t, 'to', new_settings_name
 
            migrate.changeset.rename_table(t, new_settings_name)
 
        except KeyError, e:
 
            print 'Not renaming settings:', e
 

	
 
    old_auth_name = 'internal' if old == 'kallithea' else old
 
    new_auth_name = 'internal' if new == 'kallithea' else new
 

	
 
    # using this API because ... dunno ... it is simple and works
 
    conn = metadata.bind.connect()
 
    trans = conn.begin()
 
    t = metadata.tables['users']
 

	
 
    print 'Bulk fixing of User extern_name'
 
    try:
 
        t.c.extern_name
 
    except AttributeError:
 
        print 'No extern_name to rename'
 
    else:
 
        t.update().where(t.c.extern_name == old).values(extern_name=new).execute()
 
        t.update().where(t.c.extern_name == old_auth_name).values(extern_name=new_auth_name).execute()
 

	
 
    print 'Bulk fixing of User extern_type'
 
    try:
 
        t.c.extern_type
 
    except AttributeError:
 
        print 'No extern_type to rename'
 
    else:
 
        t.update().where(t.c.extern_type == old).values(extern_type=new).execute()
 
        t.update().where(t.c.extern_type == old_auth_name).values(extern_type=new_auth_name).execute()
 

	
 
    trans.commit()
 

	
 
    # For the following conversions, use ORM ... and create stub models that works for that purpose
 
    Base = sqlalchemy.ext.declarative.declarative_base()
 

	
 
@@ -129,14 +132,12 @@ def do_migrate(db, old, new):
 
            print '- fixing %s' % u.ui_key
 
            u.ui_value = newhooks + u.ui_value[len(oldhooks):]
 
            session.add(u)
 
    session.commit()
 

	
 
    print 'Fixing auth module names'
 
    old_auth_name = 'internal' if old == 'kallithea' else old
 
    new_auth_name = 'internal' if new == 'kallithea' else new
 
    for s in session.query(Setting).filter(Setting.app_settings_name == 'auth_plugins').all():
 
        print '- fixing %s' % s.app_settings_name
 
        s.app_settings_value = (s.app_settings_value
 
                                .replace(old + '.lib.auth_modules.auth_', new + '.lib.auth_modules.auth_')
 
                                .replace('.auth_modules.auth_' + old_auth_name, '.auth_modules.auth_' + new_auth_name))
 
        session.add(s)
0 comments (0 inline, 0 general)