annotate rhodecode/lib/dbmigrate/versions/008_version_1_5_0.py @ 3181:efe23d6c178c rhodecode-0.0.1.5.2

merged with beta
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 21 Jan 2013 00:49:59 +0100
parents b31984972e95
children ffd45b185016
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3052
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
1 import logging
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
2 import datetime
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
3
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
4 from sqlalchemy import *
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
5 from sqlalchemy.exc import DatabaseError
3063
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
6 from sqlalchemy.orm import relation, backref, class_mapper, joinedload
3052
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
7 from sqlalchemy.orm.session import Session
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
8 from sqlalchemy.ext.declarative import declarative_base
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
9
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
10 from rhodecode.lib.dbmigrate.migrate import *
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
11 from rhodecode.lib.dbmigrate.migrate.changeset import *
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
12
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
13 from rhodecode.model.meta import Base
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
14 from rhodecode.model import meta
3148
b31984972e95 Migration upgrades cache for lightweight dashboard
Marcin Kuzminski <marcin@python-works.com>
parents: 3086
diff changeset
15 from rhodecode.lib.dbmigrate.versions import _reset_base
3052
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
16
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
17 log = logging.getLogger(__name__)
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
18
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
19
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
20 def upgrade(migrate_engine):
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
21 """
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
22 Upgrade operations go here.
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
23 Don't create your own engine; bind migrate_engine to your metadata
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
24 """
3063
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
25 #==========================================================================
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
26 # USER LOGS
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
27 #==========================================================================
3148
b31984972e95 Migration upgrades cache for lightweight dashboard
Marcin Kuzminski <marcin@python-works.com>
parents: 3086
diff changeset
28 _reset_base(migrate_engine)
3063
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
29 from rhodecode.lib.dbmigrate.schema.db_1_5_0 import UserLog
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
30 tbl = UserLog.__table__
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
31 username = Column("username", String(255, convert_unicode=False,
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
32 assert_unicode=None), nullable=True,
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
33 unique=None, default=None)
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
34 # create username column
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
35 username.create(table=tbl)
ca2b21819dfd Implemented better support for Wildcard queries
Marcin Kuzminski <marcin@python-works.com>
parents: 3056
diff changeset
36
3086
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
37 _Session = Session()
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
38 ## after adding that column fix all usernames
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
39 users_log = _Session.query(UserLog)\
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
40 .options(joinedload(UserLog.user))\
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
41 .options(joinedload(UserLog.repository)).all()
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
42
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
43 for entry in users_log:
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
44 entry.username = entry.user.username
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
45 _Session.add(entry)
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
46 _Session.commit()
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
47
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
48 #alter username to not null
3065
09e8623362ef remove not null from user_id column for users log archiving
Marcin Kuzminski <marcin@python-works.com>
parents: 3063
diff changeset
49 from rhodecode.lib.dbmigrate.schema.db_1_5_0 import UserLog
09e8623362ef remove not null from user_id column for users log archiving
Marcin Kuzminski <marcin@python-works.com>
parents: 3063
diff changeset
50 tbl_name = UserLog.__tablename__
09e8623362ef remove not null from user_id column for users log archiving
Marcin Kuzminski <marcin@python-works.com>
parents: 3063
diff changeset
51 tbl = Table(tbl_name,
09e8623362ef remove not null from user_id column for users log archiving
Marcin Kuzminski <marcin@python-works.com>
parents: 3063
diff changeset
52 MetaData(bind=migrate_engine), autoload=True,
09e8623362ef remove not null from user_id column for users log archiving
Marcin Kuzminski <marcin@python-works.com>
parents: 3063
diff changeset
53 autoload_with=migrate_engine)
3086
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
54 col = tbl.columns.username
3065
09e8623362ef remove not null from user_id column for users log archiving
Marcin Kuzminski <marcin@python-works.com>
parents: 3063
diff changeset
55
09e8623362ef remove not null from user_id column for users log archiving
Marcin Kuzminski <marcin@python-works.com>
parents: 3063
diff changeset
56 # remove nullability from revision field
3086
f9c44f3ed4c6 fixed migrations
Marcin Kuzminski <marcin@python-works.com>
parents: 3065
diff changeset
57 col.alter(nullable=False)
3052
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
58
3056
6104dfd35b16 Implemented #379 defaults settings page for creation of repositories
Marcin Kuzminski <marcin@python-works.com>
parents: 3052
diff changeset
59
3052
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
60 def downgrade(migrate_engine):
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
61 meta = MetaData()
d3200c58764e implemented #663 Admin/permission: specify default repogroup perms
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
62 meta.bind = migrate_engine