Пример #1
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_2_0_1
    tbl = db_2_0_1.RepoGroup.__table__

    created_on = Column('created_on', DateTime(timezone=False), nullable=True,
                        default=datetime.datetime.now)
    created_on.create(table=tbl)

    #fix null values on certain columns when upgrading from older releases
    tbl = db_2_0_1.UserLog.__table__
    col = tbl.columns.user_id
    col.alter(nullable=True)

    tbl = db_2_0_1.UserFollowing.__table__
    col = tbl.columns.follows_repository_id
    col.alter(nullable=True)

    tbl = db_2_0_1.UserFollowing.__table__
    col = tbl.columns.follows_user_id
    col.alter(nullable=True)

    # issue fixups
    fixups(db_2_0_1, meta.Session)
Пример #2
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_2_0_1
    tbl = db_2_0_1.RepoGroup.__table__

    created_on = Column('created_on',
                        DateTime(timezone=False),
                        nullable=True,
                        default=datetime.datetime.now)
    created_on.create(table=tbl)

    #fix null values on certain columns when upgrading from older releases
    tbl = db_2_0_1.UserLog.__table__
    col = tbl.columns.user_id
    col.alter(nullable=True)

    tbl = db_2_0_1.UserFollowing.__table__
    col = tbl.columns.follows_repository_id
    col.alter(nullable=True)

    tbl = db_2_0_1.UserFollowing.__table__
    col = tbl.columns.follows_user_id
    col.alter(nullable=True)

    # issue fixups
    fixups(db_2_0_1, meta.Session)
Пример #3
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_2_0_0
    tbl = db_2_0_0.User.__table__

    extern_type = Column("extern_type",
                         String(255,
                                convert_unicode=False,
                                assert_unicode=None),
                         nullable=True,
                         unique=None,
                         default=None)
    extern_type.create(table=tbl)

    extern_name = Column("extern_name",
                         String(255,
                                convert_unicode=False,
                                assert_unicode=None),
                         nullable=True,
                         unique=None,
                         default=None)
    extern_name.create(table=tbl)

    created_on = Column('created_on',
                        DateTime(timezone=False),
                        nullable=True,
                        default=datetime.datetime.now)
    created_on.create(table=tbl)

    # issue fixups
    fixups(db_2_0_0, meta.Session)
Пример #4
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_2_2_0

    # issue fixups
    fixups(db_2_2_0, meta.Session)
Пример #5
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_1_7_0

    #==========================================================================
    # UserUserGroupToPerm
    #==========================================================================
    tbl = db_1_7_0.UserUserGroupToPerm.__table__
    tbl.create()

    #==========================================================================
    # UserGroupUserGroupToPerm
    #==========================================================================
    tbl = db_1_7_0.UserGroupUserGroupToPerm.__table__
    tbl.create()

    #==========================================================================
    # Gist
    #==========================================================================
    tbl = db_1_7_0.Gist.__table__
    tbl.create()

    #==========================================================================
    # UserGroup
    #==========================================================================
    tbl = db_1_7_0.UserGroup.__table__
    user_id = Column("user_id",
                     Integer(),
                     ForeignKey('users.user_id'),
                     nullable=True,
                     unique=False,
                     default=None)
    # create username column
    user_id.create(table=tbl)

    #==========================================================================
    # RepoGroup
    #==========================================================================
    tbl = db_1_7_0.RepoGroup.__table__
    user_id = Column("user_id",
                     Integer(),
                     ForeignKey('users.user_id'),
                     nullable=True,
                     unique=False,
                     default=None)
    # create username column
    user_id.create(table=tbl)

    # issue fixups
    fixups(db_1_7_0, meta.Session)
Пример #6
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_2_1_0

    tbl = db_2_1_0.UserApiKeys.__table__
    tbl.create()

    # issue fixups
    fixups(db_2_1_0, meta.Session)
Пример #7
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_2_0_0
    tbl = db_2_0_0.Setting.__table__
    settings_value = tbl.columns.app_settings_value
    settings_value.alter(type=String(4096))

    # issue fixups
    fixups(db_2_0_0, meta.Session)
Пример #8
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_1_8_0
    tbl = db_1_8_0.Setting.__table__
    app_settings_type = Column("app_settings_type",
                               String(255, convert_unicode=False, assert_unicode=None),
                               nullable=True, unique=None, default=None)
    app_settings_type.create(table=tbl)

    # issue fixups
    fixups(db_1_8_0, meta.Session)
Пример #9
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_2_2_0

    tbl = db_2_2_0.Repository.__table__

    repo_state = Column("repo_state", String(255), nullable=True)
    repo_state.create(table=tbl)

    # issue fixups
    fixups(db_2_2_0, meta.Session)
Пример #10
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_2_2_0

    tbl = db_2_2_0.User.__table__

    user_data = Column("user_data", LargeBinary(), nullable=True)  # JSON data
    user_data.create(table=tbl)

    # issue fixups
    fixups(db_2_2_0, meta.Session)
Пример #11
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_1_6_0

    #==========================================================================
    # USER LOGS
    #==========================================================================
    tbl = db_1_6_0.RepositoryField.__table__
    tbl.create()

    # issue fixups
    fixups(db_1_6_0, meta.Session)
Пример #12
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_1_7_0

    #==========================================================================
    # UserUserGroupToPerm
    #==========================================================================
    tbl = db_1_7_0.UserUserGroupToPerm.__table__
    tbl.create()

    #==========================================================================
    # UserGroupUserGroupToPerm
    #==========================================================================
    tbl = db_1_7_0.UserGroupUserGroupToPerm.__table__
    tbl.create()

    #==========================================================================
    # Gist
    #==========================================================================
    tbl = db_1_7_0.Gist.__table__
    tbl.create()

    #==========================================================================
    # UserGroup
    #==========================================================================
    tbl = db_1_7_0.UserGroup.__table__
    user_id = Column("user_id", Integer(), ForeignKey('users.user_id'),
                     nullable=True, unique=False, default=None)
    # create username column
    user_id.create(table=tbl)

    #==========================================================================
    # RepoGroup
    #==========================================================================
    tbl = db_1_7_0.RepoGroup.__table__
    user_id = Column("user_id", Integer(), ForeignKey('users.user_id'),
                     nullable=True, unique=False, default=None)
    # create username column
    user_id.create(table=tbl)

    # issue fixups
    fixups(db_1_7_0, meta.Session)
Пример #13
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_1_7_0

    #==========================================================================
    # Gist
    #==========================================================================
    tbl = db_1_7_0.Gist.__table__
    user_id = tbl.columns.gist_expires
    user_id.alter(type=Float(53))

    # issue fixups
    fixups(db_1_7_0, meta.Session)
Пример #14
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_1_5_0
    #==========================================================================
    # USER LOGS
    #==========================================================================

    tbl = db_1_5_0.UserLog.__table__
    username = Column("username",
                      String(255, convert_unicode=False, assert_unicode=None),
                      nullable=True,
                      unique=None,
                      default=None)
    # create username column
    username.create(table=tbl)

    _Session = meta.Session()
    ## after adding that column fix all usernames
    users_log = _Session.query(db_1_5_0.UserLog)\
            .options(joinedload(db_1_5_0.UserLog.user))\
            .options(joinedload(db_1_5_0.UserLog.repository)).all()

    for entry in users_log:
        entry.username = entry.user.username
        _Session.add(entry)
    _Session.commit()

    #alter username to not null
    tbl_name = db_1_5_0.UserLog.__tablename__
    tbl = Table(tbl_name,
                MetaData(bind=migrate_engine),
                autoload=True,
                autoload_with=migrate_engine)
    col = tbl.columns.username

    # remove nullability from revision field
    col.alter(nullable=False)

    # issue fixups
    fixups(db_1_5_0, meta.Session)
Пример #15
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_1_8_0
    tbl = db_1_8_0.Setting.__table__
    app_settings_type = Column("app_settings_type",
                               String(255,
                                      convert_unicode=False,
                                      assert_unicode=None),
                               nullable=True,
                               unique=None,
                               default=None)
    app_settings_type.create(table=tbl)

    # issue fixups
    fixups(db_1_8_0, meta.Session)
Пример #16
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_1_5_0
    #==========================================================================
    # USER LOGS
    #==========================================================================

    tbl = db_1_5_0.UserLog.__table__
    username = Column("username", String(255, convert_unicode=False,
                                         assert_unicode=None), nullable=True,
                      unique=None, default=None)
    # create username column
    username.create(table=tbl)

    _Session = meta.Session()
    ## after adding that column fix all usernames
    users_log = _Session.query(db_1_5_0.UserLog) \
            .options(joinedload(db_1_5_0.UserLog.user)) \
            .options(joinedload(db_1_5_0.UserLog.repository)).all()

    for entry in users_log:
        entry.username = entry.user.username
        _Session.add(entry)
    _Session.commit()

    #alter username to not null
    tbl_name = db_1_5_0.UserLog.__tablename__
    tbl = Table(tbl_name,
                MetaData(bind=migrate_engine), autoload=True,
                autoload_with=migrate_engine)
    col = tbl.columns.username

    # remove nullability from revision field
    col.alter(nullable=False)

    # issue fixups
    fixups(db_1_5_0, meta.Session)
Пример #17
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_2_0_0
    tbl = db_2_0_0.UserGroup.__table__

    user_group_description = Column("user_group_description",
                                    String(10000, convert_unicode=False,
                                           assert_unicode=None), nullable=True,
                                    unique=None, default=None)
    user_group_description.create(table=tbl)

    created_on = Column('created_on', DateTime(timezone=False),
                        nullable=True, default=datetime.datetime.now)
    created_on.create(table=tbl)

    # issue fixups
    fixups(db_2_0_0, meta.Session)
Пример #18
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)

    #==========================================================================
    # UserGroup
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_7_0 import UserGroup
    tbl = UserGroup.__table__
    user_id = tbl.columns.user_id
    user_id.alter(nullable=False)

    #==========================================================================
    # RepoGroup
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_7_0 import RepoGroup
    tbl = RepoGroup.__table__
    user_id = tbl.columns.user_id
    user_id.alter(nullable=False)
Пример #19
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)
    from kallithea.lib.dbmigrate.schema import db_1_5_2
    #==========================================================================
    # USER LOGS
    #==========================================================================
    tbl = db_1_5_2.UserIpMap.__table__
    tbl.create()

    #==========================================================================
    # REPOSITORIES
    #==========================================================================
    tbl = db_1_5_2.Repository.__table__
    changeset_cache = Column("changeset_cache", LargeBinary(), nullable=True)
    # create username column
    changeset_cache.create(table=tbl)

    # issue fixups
    fixups(db_1_5_2, meta.Session)
Пример #20
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """
    _reset_base(migrate_engine)


    #==========================================================================
    # UserGroup
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_7_0 import UserGroup
    tbl = UserGroup.__table__
    user_id = tbl.columns.user_id
    user_id.alter(nullable=False)

    #==========================================================================
    # RepoGroup
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_7_0 import RepoGroup
    tbl = RepoGroup.__table__
    user_id = tbl.columns.user_id
    user_id.alter(nullable=False)
Пример #21
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """

    #==========================================================================
    # USEREMAILMAP
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_4_0 import UserEmailMap
    tbl = UserEmailMap.__table__
    tbl.create()
    #==========================================================================
    # PULL REQUEST
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_4_0 import PullRequest
    tbl = PullRequest.__table__
    tbl.create()

    #==========================================================================
    # PULL REQUEST REVIEWERS
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_4_0 import PullRequestReviewers
    tbl = PullRequestReviewers.__table__
    tbl.create()

    #==========================================================================
    # CHANGESET STATUS
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_4_0 import ChangesetStatus
    tbl = ChangesetStatus.__table__
    tbl.create()

    _reset_base(migrate_engine)

    #==========================================================================
    # USERS TABLE
    #==========================================================================
    from kallithea.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)

    # add inherit_default_permission column
    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)

    #==========================================================================
    # USERS GROUP TABLE
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_3_0 import UserGroup
    tbl = UserGroup.__table__
    # 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)

    #==========================================================================
    # REPOSITORIES
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_3_0 import Repository
    tbl = Repository.__table__

    # add enable locking column
    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)

    # add locked column
    _locked = Column("locked",
                     String(255),
                     nullable=True,
                     unique=False,
                     default=None)
    _locked.create(table=tbl)

    #add langing revision column
    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 kallithea.lib.dbmigrate.schema.db_1_3_0 import RepoGroup
    tbl = RepoGroup.__table__

    # add enable locking column
    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 kallithea.lib.dbmigrate.schema.db_1_3_0 import CacheInvalidation
    tbl = CacheInvalidation.__table__

    # add INDEX for cache keys
    col = CacheInvalidation.__table__.columns.cache_key
    col.alter(index=Index('key_idx', 'cache_key'))

    #==========================================================================
    # NOTIFICATION
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_3_0 import Notification
    tbl = Notification.__table__

    # add index for notification type
    col = Notification.__table__.columns.type
    col.alter(index=Index('notification_type_idx', 'type'), )

    #==========================================================================
    # CHANGESET_COMMENTS
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_3_0 import ChangesetComment

    tbl = ChangesetComment.__table__
    col = ChangesetComment.__table__.columns.revision

    # add index for revisions
    col.alter(index=Index('cc_revision_idx', 'revision'), )

    # add hl_lines column
    hl_lines = Column('hl_lines', Unicode(512), nullable=True)
    hl_lines.create(table=tbl)

    # add created_on column
    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)

    modified_at = Column('modified_at',
                         DateTime(timezone=False),
                         nullable=False,
                         default=datetime.datetime.now)
    modified_at.alter(type=DateTime(timezone=False), table=tbl)

    # add FK to pull_request
    pull_request_id = Column("pull_request_id",
                             Integer(),
                             ForeignKey('pull_requests.pull_request_id'),
                             nullable=True)
    pull_request_id.create(table=tbl)
    _reset_base(migrate_engine)
Пример #22
0
def upgrade(migrate_engine):
    """
    Upgrade operations go here.
    Don't create your own engine; bind migrate_engine to your metadata
    """

    #==========================================================================
    # USEREMAILMAP
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_4_0 import UserEmailMap
    tbl = UserEmailMap.__table__
    tbl.create()
    #==========================================================================
    # PULL REQUEST
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_4_0 import PullRequest
    tbl = PullRequest.__table__
    tbl.create()

    #==========================================================================
    # PULL REQUEST REVIEWERS
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_4_0 import PullRequestReviewers
    tbl = PullRequestReviewers.__table__
    tbl.create()

    #==========================================================================
    # CHANGESET STATUS
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_4_0 import ChangesetStatus
    tbl = ChangesetStatus.__table__
    tbl.create()

    _reset_base(migrate_engine)

    #==========================================================================
    # USERS TABLE
    #==========================================================================
    from kallithea.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)

    # add inherit_default_permission column
    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)

    #==========================================================================
    # USERS GROUP TABLE
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_3_0 import UserGroup
    tbl = UserGroup.__table__
    # 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)

    #==========================================================================
    # REPOSITORIES
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_3_0 import Repository
    tbl = Repository.__table__

    # add enable locking column
    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)

    # add locked column
    _locked = Column("locked", String(255), nullable=True, unique=False,
                     default=None)
    _locked.create(table=tbl)

    #add langing revision column
    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 kallithea.lib.dbmigrate.schema.db_1_3_0 import RepoGroup
    tbl = RepoGroup.__table__

    # add enable locking column
    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 kallithea.lib.dbmigrate.schema.db_1_3_0 import CacheInvalidation
    tbl = CacheInvalidation.__table__

    # add INDEX for cache keys
    col = CacheInvalidation.__table__.columns.cache_key
    col.alter(index=Index('key_idx', 'cache_key'))

    #==========================================================================
    # NOTIFICATION
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_3_0 import Notification
    tbl = Notification.__table__

    # add index for notification type
    col = Notification.__table__.columns.type
    col.alter(index=Index('notification_type_idx', 'type'),)

    #==========================================================================
    # CHANGESET_COMMENTS
    #==========================================================================
    from kallithea.lib.dbmigrate.schema.db_1_3_0 import ChangesetComment

    tbl = ChangesetComment.__table__
    col = ChangesetComment.__table__.columns.revision

    # add index for revisions
    col.alter(index=Index('cc_revision_idx', 'revision'),)

    # add hl_lines column
    hl_lines = Column('hl_lines', Unicode(512), nullable=True)
    hl_lines.create(table=tbl)

    # add created_on column
    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)

    modified_at = Column('modified_at', DateTime(timezone=False), nullable=False,
                         default=datetime.datetime.now)
    modified_at.alter(type=DateTime(timezone=False), table=tbl)

    # add FK to pull_request
    pull_request_id = Column("pull_request_id", Integer(),
                             ForeignKey('pull_requests.pull_request_id'),
                             nullable=True)
    pull_request_id.create(table=tbl)
    _reset_base(migrate_engine)