Changeset - 09e8623362ef
[Not reviewed]
beta
0 2 0
Marcin Kuzminski - 13 years ago 2012-12-06 00:53:49
marcin@python-works.com
remove not null from user_id column for users log archiving
2 files changed with 15 insertions and 1 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/dbmigrate/versions/008_version_1_5_0.py
Show inline comments
 
@@ -29,12 +29,25 @@ def upgrade(migrate_engine):
 
    username = Column("username", String(255, convert_unicode=False,
 
                                         assert_unicode=None), nullable=True,
 
                      unique=None, default=None)
 
    # 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))\
 
            .options(joinedload(UserLog.repository)).all()
 
    for entry in users_log:
 
        entry.username = entry.user.username
rhodecode/model/db.py
Show inline comments
 
@@ -328,12 +328,13 @@ class User(Base, BaseModel):
 
    _email = Column("email", String(255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
 
    last_login = Column("last_login", DateTime(timezone=False), nullable=True, unique=None, default=None)
 
    ldap_dn = Column("ldap_dn", String(255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
 
    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')
 
    user_followers = relationship('UserFollowing', primaryjoin='UserFollowing.follows_user_id==User.user_id', cascade='all')
 
    repo_to_perm = relationship('UserRepoToPerm', primaryjoin='UserRepoToPerm.user_id==User.user_id', cascade='all')
 
    repo_group_to_perm = relationship('UserRepoGroupToPerm', primaryjoin='UserRepoGroupToPerm.user_id==User.user_id', cascade='all')
 
@@ -519,13 +520,13 @@ class UserLog(Base, BaseModel):
 
    __tablename__ = 'user_logs'
 
    __table_args__ = (
 
        {'extend_existing': True, 'mysql_engine': 'InnoDB',
 
         '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)
 
    user_ip = Column("user_ip", String(255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
 
    action = Column("action", UnicodeText(1200000, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
 
    action_date = Column("action_date", DateTime(timezone=False), nullable=True, unique=None, default=None)
0 comments (0 inline, 0 general)