diff --git a/rhodecode/lib/dbmigrate/versions/008_version_1_5_0.py b/rhodecode/lib/dbmigrate/versions/008_version_1_5_0.py --- a/rhodecode/lib/dbmigrate/versions/008_version_1_5_0.py +++ b/rhodecode/lib/dbmigrate/versions/008_version_1_5_0.py @@ -32,6 +32,19 @@ def upgrade(migrate_engine): # create username column username.create(table=tbl) + #alter user_id to not null + from rhodecode.lib.dbmigrate.schema.db_1_5_0 import UserLog + tbl_name = UserLog.__tablename__ + tbl = Table(tbl_name, + MetaData(bind=migrate_engine), autoload=True, + autoload_with=migrate_engine) + col = tbl.columns.user_id + + # remove nullability from revision field + col.alter(nullable=True) + + + ## after adding that column fix all usernames users_log = UserLog.query()\ .options(joinedload(UserLog.user))\ diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -331,6 +331,7 @@ class User(Base, BaseModel): api_key = Column("api_key", String(255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) inherit_default_permissions = Column("inherit_default_permissions", Boolean(), nullable=False, unique=None, default=True) + user_log = relationship('UserLog') user_perms = relationship('UserToPerm', primaryjoin="User.user_id==UserToPerm.user_id", cascade='all') repositories = relationship('Repository') @@ -522,7 +523,7 @@ class UserLog(Base, BaseModel): 'mysql_charset': 'utf8'}, ) user_log_id = Column("user_log_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) + user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None) username = Column("username", String(255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True) repository_name = Column("repository_name", String(255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)