Mercurial > kallithea
annotate rhodecode/lib/dbmigrate/versions/008_version_1_5_0.py @ 4099:43b54436d459
update issue tracker and official site
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 01 Sep 2013 19:56:08 +0200 |
parents | b31984972e95 |
children | ffd45b185016 |
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 |