##// END OF EJS Templates
migration: Add data migration of the users 'extern_type' attribute....
johbo -
r127:b9c5d416 default
parent child Browse files
Show More
@@ -0,0 +1,55 b''
1 # -*- coding: utf-8 -*-
2
3 import logging
4 from collections import namedtuple
5
6 from rhodecode.lib.dbmigrate.versions import _reset_base
7 from rhodecode.model import init_model_encryption, meta
8
9 log = logging.getLogger(__name__)
10
11
12 def upgrade(migrate_engine):
13 """
14 Upgrade operations go here.
15 Don't create your own engine; bind migrate_engine to your metadata
16 """
17 _reset_base(migrate_engine)
18 from rhodecode.lib.dbmigrate.schema import db_3_7_0_0
19 init_model_encryption(db_3_7_0_0)
20 fixups(db_3_7_0_0, meta.Session)
21
22
23 def downgrade(migrate_engine):
24 pass
25
26
27 AUTH_PLUGINS_SETTING = "auth_plugins"
28
29 EXTERN_TYPE_RENAME_MAP = {
30 'container': 'headers',
31 }
32
33 # Only used for logging purposes.
34 RenameExternTypeOperation = namedtuple(
35 'RenameExternTypeOperation', ['user', 'old', 'new'])
36
37
38 def fixups(models, Session):
39 operations = []
40
41 # Rename the extern_type attribute
42 query = models.User.query().filter(
43 models.User.extern_type.in_(EXTERN_TYPE_RENAME_MAP.keys()))
44 for user in query:
45 old = user.extern_type
46 new = EXTERN_TYPE_RENAME_MAP[old]
47 user.extern_type = new
48 Session.add(user)
49 operations.append(RenameExternTypeOperation(user, old, new))
50
51 log.info("Migration of users 'extern_type' attribute.")
52 for op in operations:
53 log.info("%s", op)
54
55 Session().commit()
General Comments 0
You need to be logged in to leave comments. Login now