006_version_1_4_0.py
177 lines
| 7.1 KiB
| text/x-python
|
PythonLexer
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 | ||||
r2765 | from sqlalchemy.ext.declarative import declarative_base | |||
r2550 | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.migrate import * | ||
from kallithea.lib.dbmigrate.migrate.changeset import * | ||||
r2550 | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.model.meta import Base | ||
from kallithea.model import meta | ||||
from kallithea.lib.dbmigrate.versions import _reset_base | ||||
r2550 | ||||
log = logging.getLogger(__name__) | ||||
def upgrade(migrate_engine): | ||||
r2765 | """ | |||
Upgrade operations go here. | ||||
r2550 | Don't create your own engine; bind migrate_engine to your metadata | |||
""" | ||||
r2765 | #========================================================================== | |||
# USEREMAILMAP | ||||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_4_0 import UserEmailMap | ||
r2765 | tbl = UserEmailMap.__table__ | |||
tbl.create() | ||||
#========================================================================== | ||||
# PULL REQUEST | ||||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_4_0 import PullRequest | ||
r2765 | tbl = PullRequest.__table__ | |||
tbl.create() | ||||
#========================================================================== | ||||
# PULL REQUEST REVIEWERS | ||||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_4_0 import PullRequestReviewers | ||
r2765 | tbl = PullRequestReviewers.__table__ | |||
tbl.create() | ||||
#========================================================================== | ||||
# CHANGESET STATUS | ||||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_4_0 import ChangesetStatus | ||
r2765 | tbl = ChangesetStatus.__table__ | |||
tbl.create() | ||||
r3148 | _reset_base(migrate_engine) | |||
r2765 | ||||
#========================================================================== | ||||
# USERS TABLE | ||||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_3_0 import User | ||
r2765 | 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) | ||||
r2769 | # add inherit_default_permission column | |||
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) | ||||
#========================================================================== | ||||
r2769 | # USERS GROUP TABLE | |||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_3_0 import UserGroup | ||
Mads Kiilerich
|
r3417 | tbl = UserGroup.__table__ | ||
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) | ||||
#========================================================================== | ||||
r2765 | # REPOSITORIES | |||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_3_0 import Repository | ||
r2765 | tbl = Repository.__table__ | |||
r2769 | # add enable locking column | |||
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) | ||||
r2769 | # add locked column | |||
r2765 | _locked = Column("locked", String(255), nullable=True, unique=False, | |||
default=None) | ||||
_locked.create(table=tbl) | ||||
r2769 | #add langing revision column | |||
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 | ||||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_3_0 import RepoGroup | ||
r2765 | tbl = RepoGroup.__table__ | |||
r2769 | ||||
# add enable locking column | ||||
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 | ||||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_3_0 import CacheInvalidation | ||
r2765 | tbl = CacheInvalidation.__table__ | |||
r2769 | # add INDEX for cache keys | |||
r2765 | col = CacheInvalidation.__table__.columns.cache_key | |||
col.alter(index=Index('key_idx', 'cache_key')) | ||||
#========================================================================== | ||||
# NOTIFICATION | ||||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_3_0 import Notification | ||
r2765 | tbl = Notification.__table__ | |||
r2769 | # add index for notification type | |||
r2765 | col = Notification.__table__.columns.type | |||
col.alter(index=Index('notification_type_idx', 'type'),) | ||||
#========================================================================== | ||||
# CHANGESET_COMMENTS | ||||
#========================================================================== | ||||
Bradley M. Kuhn
|
r4186 | from kallithea.lib.dbmigrate.schema.db_1_3_0 import ChangesetComment | ||
r2765 | ||||
tbl = ChangesetComment.__table__ | ||||
r2769 | col = ChangesetComment.__table__.columns.revision | |||
r2765 | ||||
r2769 | # add index for revisions | |||
r2765 | col.alter(index=Index('cc_revision_idx', 'revision'),) | |||
r2769 | # add hl_lines column | |||
r2765 | hl_lines = Column('hl_lines', Unicode(512), nullable=True) | |||
hl_lines.create(table=tbl) | ||||
r2769 | # add created_on column | |||
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) | ||||
r2769 | ||||
r2765 | modified_at = Column('modified_at', DateTime(timezone=False), nullable=False, | |||
default=datetime.datetime.now) | ||||
modified_at.alter(type=DateTime(timezone=False), table=tbl) | ||||
r2769 | # add FK to pull_request | |||
r2765 | pull_request_id = Column("pull_request_id", Integer(), | |||
ForeignKey('pull_requests.pull_request_id'), | ||||
nullable=True) | ||||
pull_request_id.create(table=tbl) | ||||
r3148 | _reset_base(migrate_engine) | |||
r2550 | ||||
def downgrade(migrate_engine): | ||||
meta = MetaData() | ||||
meta.bind = migrate_engine | ||||