Changeset - 2f83756f3041
[Not reviewed]
beta
0 4 0
Marcin Kuzminski - 15 years ago 2011-01-02 19:55:22
marcin@python-works.com
Fixed dbmigrate issues.
4 files changed with 28 insertions and 90 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/db_manage.py
Show inline comments
 
@@ -51,10 +51,14 @@ class DbManage(object):
 
        self.tests = tests
 
        self.root = root
 
        self.dburi = dbconf
 
        engine = create_engine(self.dburi, echo=log_sql)
 
        self.log_sql = log_sql
 
        self.db_exists = False
 
        self.init_db()
 

	
 
    def init_db(self):
 
        engine = create_engine(self.dburi, echo=self.log_sql)
 
        init_model(engine)
 
        self.sa = meta.Session()
 
        self.db_exists = False
 

	
 
    def check_for_db(self, override):
 
        db_path = jn(self.root, self.dbname)
 
@@ -222,6 +226,7 @@ class DbManage(object):
 
        """
 

	
 
        hgsettings3 = RhodeCodeSettings('ga_code', '')
 

	
 
        try:
 
            self.sa.add(hgsettings3)
 
            self.sa.commit()
rhodecode/lib/dbmigrate/versions/002_version_1_1_0.py
Show inline comments
 
@@ -9,6 +9,7 @@ from rhodecode.model.meta import Base
 
from rhodecode.model.db import BaseModel
 

	
 
from rhodecode.lib.dbmigrate.migrate import *
 
from rhodecode.lib.dbmigrate.migrate.changeset import *
 

	
 
log = logging.getLogger(__name__)
 

	
 
@@ -69,57 +70,17 @@ def upgrade(migrate_engine):
 
    #==========================================================================
 
    # Add table `user_followings`
 
    #==========================================================================
 
    tblname = 'user_followings'
 

	
 
    class UserFollowing(Base, BaseModel):
 
        __tablename__ = 'user_followings'
 
        __table_args__ = (UniqueConstraint('user_id', 'follows_repository_id'),
 
                          UniqueConstraint('user_id', 'follows_user_id')
 
                          , {'useexisting':True})
 

	
 
        user_following_id = Column("user_following_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
 
        user_id = Column("user_id", Integer(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None)
 
        follows_repo_id = Column("follows_repository_id", Integer(), ForeignKey(u'repositories.repo_id'), nullable=True, unique=None, default=None)
 
        follows_user_id = Column("follows_user_id", Integer(), ForeignKey(u'users.user_id'), nullable=True, unique=None, default=None)
 

	
 
        user = relation('User', primaryjoin='User.user_id==UserFollowing.user_id')
 

	
 
        follows_user = relation('User', primaryjoin='User.user_id==UserFollowing.follows_user_id')
 
        follows_repository = relation('Repository')
 

	
 
    Base.metadata.tables[tblname].create(migrate_engine)
 
    from rhodecode.model.db import UserFollowing
 
    UserFollowing().__table__.create()
 

	
 
    #==========================================================================
 
    # Add table `cache_invalidation`
 
    #==========================================================================
 
    tblname = 'cache_invalidation'
 

	
 
    class CacheInvalidation(Base, BaseModel):
 
        __tablename__ = 'cache_invalidation'
 
        __table_args__ = (UniqueConstraint('cache_key'), {'useexisting':True})
 
        cache_id = Column("cache_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
 
        cache_key = Column("cache_key", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
 
        cache_args = Column("cache_args", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
 
        cache_active = Column("cache_active", Boolean(), nullable=True, unique=None, default=False)
 

	
 

	
 
        def __init__(self, cache_key, cache_args=''):
 
            self.cache_key = cache_key
 
            self.cache_args = cache_args
 
            self.cache_active = False
 

	
 
        def __repr__(self):
 
            return "<CacheInvalidation('%s:%s')>" % (self.cache_id, self.cache_key)
 

	
 
    Base.metadata.tables[tblname].create(migrate_engine)
 
    from rhodecode.model.db import CacheInvalidation
 
    CacheInvalidation().__table__.create()
 

	
 
    return
 

	
 

	
 

	
 

	
 

	
 

	
 
def downgrade(migrate_engine):
 
    meta = MetaData()
 
    meta.bind = migrate_engine
rhodecode/lib/dbmigrate/versions/003_version_1_2_0.py
Show inline comments
 
@@ -5,11 +5,14 @@ from sqlalchemy import *
 
from sqlalchemy.exc import DatabaseError
 
from sqlalchemy.orm import relation, backref, class_mapper
 
from sqlalchemy.orm.session import Session
 

	
 

	
 
from rhodecode.lib.dbmigrate.migrate import *
 
from rhodecode.lib.dbmigrate.migrate.changeset import *
 

	
 
from rhodecode.model.meta import Base
 
from rhodecode.model.db import BaseModel
 

	
 
from rhodecode.lib.dbmigrate.migrate import *
 

	
 
log = logging.getLogger(__name__)
 

	
 
def upgrade(migrate_engine):
 
@@ -20,48 +23,14 @@ def upgrade(migrate_engine):
 
    #==========================================================================
 
    # Add table `groups``
 
    #==========================================================================
 
    tblname = 'groups'
 

	
 
    class Group(Base, BaseModel):
 
        __tablename__ = 'groups'
 
        __table_args__ = (UniqueConstraint('group_name'), {'useexisting':True},)
 

	
 
        group_id = Column("group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
 
        group_name = Column("group_name", String(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None)
 
        group_parent_id = Column("group_parent_id", Integer(), ForeignKey('groups.group_id'), nullable=True, unique=None, default=None)
 

	
 
        parent_group = relation('Group', remote_side=group_id)
 

	
 

	
 
        def __init__(self, group_name='', parent_group=None):
 
            self.group_name = group_name
 
            self.parent_group = parent_group
 

	
 
        def __repr__(self):
 
            return "<%s('%s:%s')>" % (self.__class__.__name__, self.group_id,
 
                                      self.group_name)
 

	
 
    Base.metadata.tables[tblname].create(migrate_engine)
 
    from rhodecode.model.db import Group
 
    Group().__table__.create()
 

	
 
    #==========================================================================
 
    # Add table `group_to_perm`
 
    #==========================================================================
 
    tblname = 'group_to_perm'
 

	
 
    class GroupToPerm(Base, BaseModel):
 
        __tablename__ = 'group_to_perm'
 
        __table_args__ = (UniqueConstraint('group_id', 'permission_id'), {'useexisting':True})
 

	
 
        group_to_perm_id = Column("group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True)
 
        user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
 
        permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
 
        group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None)
 

	
 
        user = relation('User')
 
        permission = relation('Permission')
 
        group = relation('Group')
 

	
 
    Base.metadata.tables[tblname].create(migrate_engine)
 
    from rhodecode.model.db import GroupToPerm
 
    GroupToPerm().__table__.create()
 

	
 
    #==========================================================================
 
    # Upgrade of `repositories` table
 
@@ -71,12 +40,15 @@ def upgrade(migrate_engine):
 
                    autoload_with=migrate_engine)
 

	
 
    #ADD group_id column#
 
    group_id = Column("group_id", Integer(), ForeignKey(u'groups.group_id'),
 
    group_id = Column("group_id", Integer(), #ForeignKey('groups.group_id'),
 
                  nullable=True, unique=False, default=None)
 

	
 
    group_id.create(tbl, populate_default=True)
 
    group_id.create(tbl)
 

	
 

	
 
# TODO: fix this somehow ?!
 
#    cons = ForeignKeyConstraint([tbl.c.group_id], ['groups.group_id'], table=tbl)
 
#
 
#    cons.create()
 
    return
 

	
 

	
rhodecode/model/db.py
Show inline comments
 
@@ -75,7 +75,7 @@ class RhodeCodeSettings(Base, BaseModel)
 
    app_settings_name = Column("app_settings_name", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
 
    app_settings_value = Column("app_settings_value", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
 

	
 
    def __init__(self, k, v):
 
    def __init__(self, k='', v=''):
 
        self.app_settings_name = k
 
        self.app_settings_value = v
 

	
0 comments (0 inline, 0 general)