##// END OF EJS Templates
moved permission management into separate entity....
moved permission management into separate entity. - this solves issues when whole form submision could influence permission management particular case is that when repo group permission is revoked and user is no longer able to update repository settings

File last commit:

r3417:fa6ba672 beta
r3628:c734686b beta
Show More
006_version_1_4_0.py
177 lines | 7.1 KiB | text/x-python | PythonLexer
space fix
r2550 import logging
import datetime
from sqlalchemy import *
from sqlalchemy.exc import DatabaseError
from sqlalchemy.orm import relation, backref, class_mapper
from sqlalchemy.orm.session import Session
Step6a for migrations from 1.3.6...
r2765 from sqlalchemy.ext.declarative import declarative_base
space fix
r2550
from rhodecode.lib.dbmigrate.migrate import *
from rhodecode.lib.dbmigrate.migrate.changeset import *
from rhodecode.model.meta import Base
Step6a for migrations from 1.3.6...
r2765 from rhodecode.model import meta
Migration upgrades cache for lightweight dashboard...
r3148 from rhodecode.lib.dbmigrate.versions import _reset_base
space fix
r2550
log = logging.getLogger(__name__)
def upgrade(migrate_engine):
Step6a for migrations from 1.3.6...
r2765 """
Upgrade operations go here.
space fix
r2550 Don't create your own engine; bind migrate_engine to your metadata
"""
Step6a for migrations from 1.3.6...
r2765 #==========================================================================
# USEREMAILMAP
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_4_0 import UserEmailMap
tbl = UserEmailMap.__table__
tbl.create()
#==========================================================================
# PULL REQUEST
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_4_0 import PullRequest
tbl = PullRequest.__table__
tbl.create()
#==========================================================================
# PULL REQUEST REVIEWERS
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_4_0 import PullRequestReviewers
tbl = PullRequestReviewers.__table__
tbl.create()
#==========================================================================
# CHANGESET STATUS
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_4_0 import ChangesetStatus
tbl = ChangesetStatus.__table__
tbl.create()
Migration upgrades cache for lightweight dashboard...
r3148 _reset_base(migrate_engine)
Step6a for migrations from 1.3.6...
r2765
#==========================================================================
# USERS TABLE
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import User
tbl = User.__table__
# change column name -> firstname
col = User.__table__.columns.name
col.alter(index=Index('u_username_idx', 'username'))
col.alter(index=Index('u_email_idx', 'email'))
col.alter(name="firstname", table=tbl)
typos+docs.
r2769 # add inherit_default_permission column
More fixes to upgrade procedure,...
r2767 inherit_default_permissions = Column("inherit_default_permissions",
Boolean(), nullable=True, unique=None,
default=True)
inherit_default_permissions.create(table=tbl)
inherit_default_permissions.alter(nullable=False, default=True, table=tbl)
#==========================================================================
typos+docs.
r2769 # USERS GROUP TABLE
#==========================================================================
Mads Kiilerich
further cleanup of UsersGroup...
r3417 from rhodecode.lib.dbmigrate.schema.db_1_3_0 import UserGroup
tbl = UserGroup.__table__
typos+docs.
r2769 # add inherit_default_permission column
gr_inherit_default_permissions = Column(
"users_group_inherit_default_permissions",
Boolean(), nullable=True, unique=None,
default=True)
gr_inherit_default_permissions.create(table=tbl)
gr_inherit_default_permissions.alter(nullable=False, default=True, table=tbl)
#==========================================================================
Step6a for migrations from 1.3.6...
r2765 # REPOSITORIES
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import Repository
tbl = Repository.__table__
typos+docs.
r2769 # add enable locking column
Step6a for migrations from 1.3.6...
r2765 enable_locking = Column("enable_locking", Boolean(), nullable=True,
unique=None, default=False)
enable_locking.create(table=tbl)
enable_locking.alter(nullable=False, default=False, table=tbl)
typos+docs.
r2769 # add locked column
Step6a for migrations from 1.3.6...
r2765 _locked = Column("locked", String(255), nullable=True, unique=False,
default=None)
_locked.create(table=tbl)
typos+docs.
r2769 #add langing revision column
Step6a for migrations from 1.3.6...
r2765 landing_rev = Column("landing_revision", String(255), nullable=True,
unique=False, default='tip')
landing_rev.create(table=tbl)
landing_rev.alter(nullable=False, default='tip', table=tbl)
#==========================================================================
# GROUPS
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import RepoGroup
tbl = RepoGroup.__table__
typos+docs.
r2769
# add enable locking column
Step6a for migrations from 1.3.6...
r2765 enable_locking = Column("enable_locking", Boolean(), nullable=True,
unique=None, default=False)
enable_locking.create(table=tbl)
enable_locking.alter(nullable=False, default=False)
#==========================================================================
# CACHE INVALIDATION
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import CacheInvalidation
tbl = CacheInvalidation.__table__
typos+docs.
r2769 # add INDEX for cache keys
Step6a for migrations from 1.3.6...
r2765 col = CacheInvalidation.__table__.columns.cache_key
col.alter(index=Index('key_idx', 'cache_key'))
#==========================================================================
# NOTIFICATION
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import Notification
tbl = Notification.__table__
typos+docs.
r2769 # add index for notification type
Step6a for migrations from 1.3.6...
r2765 col = Notification.__table__.columns.type
col.alter(index=Index('notification_type_idx', 'type'),)
#==========================================================================
# CHANGESET_COMMENTS
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import ChangesetComment
tbl = ChangesetComment.__table__
typos+docs.
r2769 col = ChangesetComment.__table__.columns.revision
Step6a for migrations from 1.3.6...
r2765
typos+docs.
r2769 # add index for revisions
Step6a for migrations from 1.3.6...
r2765 col.alter(index=Index('cc_revision_idx', 'revision'),)
typos+docs.
r2769 # add hl_lines column
Step6a for migrations from 1.3.6...
r2765 hl_lines = Column('hl_lines', Unicode(512), nullable=True)
hl_lines.create(table=tbl)
typos+docs.
r2769 # add created_on column
Step6a for migrations from 1.3.6...
r2765 created_on = Column('created_on', DateTime(timezone=False), nullable=True,
default=datetime.datetime.now)
created_on.create(table=tbl)
created_on.alter(nullable=False, default=datetime.datetime.now)
typos+docs.
r2769
Step6a for migrations from 1.3.6...
r2765 modified_at = Column('modified_at', DateTime(timezone=False), nullable=False,
default=datetime.datetime.now)
modified_at.alter(type=DateTime(timezone=False), table=tbl)
typos+docs.
r2769 # add FK to pull_request
Step6a for migrations from 1.3.6...
r2765 pull_request_id = Column("pull_request_id", Integer(),
ForeignKey('pull_requests.pull_request_id'),
nullable=True)
pull_request_id.create(table=tbl)
Migration upgrades cache for lightweight dashboard...
r3148 _reset_base(migrate_engine)
space fix
r2550
def downgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine