Mercurial > kallithea
changeset 907:2f83756f3041 beta
Fixed dbmigrate issues.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 02 Jan 2011 19:55:22 +0100 |
parents | c1899a7d02c2 |
children | de560c47dd03 |
files | rhodecode/lib/db_manage.py rhodecode/lib/dbmigrate/versions/002_version_1_1_0.py rhodecode/lib/dbmigrate/versions/003_version_1_2_0.py rhodecode/model/db.py |
diffstat | 4 files changed, 28 insertions(+), 90 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/lib/db_manage.py Sun Jan 02 02:08:51 2011 +0100 +++ b/rhodecode/lib/db_manage.py Sun Jan 02 19:55:22 2011 +0100 @@ -51,10 +51,14 @@ 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 @@ """ hgsettings3 = RhodeCodeSettings('ga_code', '') + try: self.sa.add(hgsettings3) self.sa.commit()
--- a/rhodecode/lib/dbmigrate/versions/002_version_1_1_0.py Sun Jan 02 02:08:51 2011 +0100 +++ b/rhodecode/lib/dbmigrate/versions/002_version_1_1_0.py Sun Jan 02 19:55:22 2011 +0100 @@ -9,6 +9,7 @@ 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 @@ #========================================================================== # 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
--- a/rhodecode/lib/dbmigrate/versions/003_version_1_2_0.py Sun Jan 02 02:08:51 2011 +0100 +++ b/rhodecode/lib/dbmigrate/versions/003_version_1_2_0.py Sun Jan 02 19:55:22 2011 +0100 @@ -5,11 +5,14 @@ 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 @@ #========================================================================== # 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 @@ 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
--- a/rhodecode/model/db.py Sun Jan 02 02:08:51 2011 +0100 +++ b/rhodecode/model/db.py Sun Jan 02 19:55:22 2011 +0100 @@ -75,7 +75,7 @@ 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