comparison rhodecode/lib/dbmigrate/versions/008_version_1_5_0.py @ 3086:f9c44f3ed4c6 beta

fixed migrations
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 12 Dec 2012 23:26:30 +0100
parents 09e8623362ef
children b31984972e95
comparison
equal deleted inserted replaced
3085:7d0476e1f1dc 3086:f9c44f3ed4c6
30 assert_unicode=None), nullable=True, 30 assert_unicode=None), nullable=True,
31 unique=None, default=None) 31 unique=None, default=None)
32 # create username column 32 # create username column
33 username.create(table=tbl) 33 username.create(table=tbl)
34 34
35 #alter user_id to not null 35 _Session = Session()
36 ## after adding that column fix all usernames
37 users_log = _Session.query(UserLog)\
38 .options(joinedload(UserLog.user))\
39 .options(joinedload(UserLog.repository)).all()
40
41 for entry in users_log:
42 entry.username = entry.user.username
43 _Session.add(entry)
44 _Session.commit()
45
46 #alter username to not null
36 from rhodecode.lib.dbmigrate.schema.db_1_5_0 import UserLog 47 from rhodecode.lib.dbmigrate.schema.db_1_5_0 import UserLog
37 tbl_name = UserLog.__tablename__ 48 tbl_name = UserLog.__tablename__
38 tbl = Table(tbl_name, 49 tbl = Table(tbl_name,
39 MetaData(bind=migrate_engine), autoload=True, 50 MetaData(bind=migrate_engine), autoload=True,
40 autoload_with=migrate_engine) 51 autoload_with=migrate_engine)
41 col = tbl.columns.user_id 52 col = tbl.columns.username
42 53
43 # remove nullability from revision field 54 # remove nullability from revision field
44 col.alter(nullable=True) 55 col.alter(nullable=False)
45
46
47
48 ## after adding that column fix all usernames
49 users_log = UserLog.query()\
50 .options(joinedload(UserLog.user))\
51 .options(joinedload(UserLog.repository)).all()
52 for entry in users_log:
53 entry.username = entry.user.username
54 Session().add(entry)
55 Session().commit()
56 56
57 57
58 def downgrade(migrate_engine): 58 def downgrade(migrate_engine):
59 meta = MetaData() 59 meta = MetaData()
60 meta.bind = migrate_engine 60 meta.bind = migrate_engine