annotate rhodecode/lib/dbmigrate/versions/003_version_1_2_0.py @ 902:07a6e8c65526 beta

fixed copyright year to 2011
author Marcin Kuzminski <marcin@python-works.com>
date Fri, 31 Dec 2010 19:46:56 +0100
parents 07f248329a3b
children 2f83756f3041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
900
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
1 import logging
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
2 import datetime
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
3
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
4 from sqlalchemy import *
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
5 from sqlalchemy.exc import DatabaseError
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
6 from sqlalchemy.orm import relation, backref, class_mapper
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
7 from sqlalchemy.orm.session import Session
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
8 from rhodecode.model.meta import Base
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
9 from rhodecode.model.db import BaseModel
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
10
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
11 from rhodecode.lib.dbmigrate.migrate import *
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
12
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
13 log = logging.getLogger(__name__)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
14
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
15 def upgrade(migrate_engine):
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
16 """ Upgrade operations go here.
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
17 Don't create your own engine; bind migrate_engine to your metadata
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
18 """
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
19
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
20 #==========================================================================
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
21 # Add table `groups``
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
22 #==========================================================================
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
23 tblname = 'groups'
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
24
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
25 class Group(Base, BaseModel):
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
26 __tablename__ = 'groups'
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
27 __table_args__ = (UniqueConstraint('group_name'), {'useexisting':True},)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
28
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
29 group_id = Column("group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
30 group_name = Column("group_name", String(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
31 group_parent_id = Column("group_parent_id", Integer(), ForeignKey('groups.group_id'), nullable=True, unique=None, default=None)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
32
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
33 parent_group = relation('Group', remote_side=group_id)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
34
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
35
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
36 def __init__(self, group_name='', parent_group=None):
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
37 self.group_name = group_name
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
38 self.parent_group = parent_group
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
39
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
40 def __repr__(self):
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
41 return "<%s('%s:%s')>" % (self.__class__.__name__, self.group_id,
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
42 self.group_name)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
43
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
44 Base.metadata.tables[tblname].create(migrate_engine)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
45
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
46 #==========================================================================
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
47 # Add table `group_to_perm`
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
48 #==========================================================================
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
49 tblname = 'group_to_perm'
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
50
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
51 class GroupToPerm(Base, BaseModel):
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
52 __tablename__ = 'group_to_perm'
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
53 __table_args__ = (UniqueConstraint('group_id', 'permission_id'), {'useexisting':True})
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
54
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
55 group_to_perm_id = Column("group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
56 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
57 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
58 group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
59
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
60 user = relation('User')
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
61 permission = relation('Permission')
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
62 group = relation('Group')
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
63
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
64 Base.metadata.tables[tblname].create(migrate_engine)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
65
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
66 #==========================================================================
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
67 # Upgrade of `repositories` table
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
68 #==========================================================================
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
69 tblname = 'repositories'
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
70 tbl = Table(tblname, MetaData(bind=migrate_engine), autoload=True,
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
71 autoload_with=migrate_engine)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
72
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
73 #ADD group_id column#
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
74 group_id = Column("group_id", Integer(), ForeignKey(u'groups.group_id'),
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
75 nullable=True, unique=False, default=None)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
76
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
77 group_id.create(tbl, populate_default=True)
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
78
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
79
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
80 return
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
81
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
82
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
83 def downgrade(migrate_engine):
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
84 meta = MetaData()
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
85 meta.bind = migrate_engine
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
86
07f248329a3b updated migration for version 1.2
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
87