# HG changeset patch # User Søren Løvborg # Date 2016-07-15 15:16:07 # Node ID 92b4b392b0dfa2fa98250aaad24f72537c844127 # Parent 5d524b9246d819fb03f405d679dfdce6acac232a db: remove redundant unique constraints from primary keys Primary keys are always unique, both in the SQL standard and in SQLite, MySQL and PostgreSQL. Setting unique=True cases SQLAlchemy to explicitly add additional, redundant UNIQUE indexes to the columns, which is at best needless metadata overhead, and at worst causes the database engine to waste time maintaining an extra index that serves no purpose. diff --git a/kallithea/model/db.py b/kallithea/model/db.py --- a/kallithea/model/db.py +++ b/kallithea/model/db.py @@ -179,7 +179,7 @@ class Setting(Base, BaseModel): } DEFAULT_UPDATE_URL = '' - app_settings_id = Column(Integer(), unique=True, primary_key=True) + app_settings_id = Column(Integer(), primary_key=True) app_settings_name = Column(String(255), nullable=False, unique=True) _app_settings_value = Column("app_settings_value", Unicode(4096), nullable=False) _app_settings_type = Column("app_settings_type", String(255), nullable=True) # FIXME: not nullable? @@ -344,7 +344,7 @@ class Ui(Base, BaseModel): HOOK_PULL = 'outgoing.pull_logger' HOOK_PRE_PULL = 'preoutgoing.pre_pull' - ui_id = Column(Integer(), unique=True, primary_key=True) + ui_id = Column(Integer(), primary_key=True) ui_section = Column(String(255), nullable=False) ui_key = Column(String(255), nullable=False) ui_value = Column(String(255), nullable=True) # FIXME: not nullable? @@ -408,7 +408,7 @@ class User(Base, BaseModel): DEFAULT_USER = 'default' DEFAULT_GRAVATAR_URL = 'https://secure.gravatar.com/avatar/{md5email}?d=identicon&s={size}' - user_id = Column(Integer(), unique=True, primary_key=True) + user_id = Column(Integer(), primary_key=True) username = Column(String(255), nullable=False, unique=True) password = Column(String(255), nullable=False) active = Column(Boolean(), nullable=False, default=True) @@ -711,7 +711,7 @@ class UserApiKeys(Base, BaseModel): ) __mapper_args__ = {} - user_api_key_id = Column(Integer(), unique=True, primary_key=True) + user_api_key_id = Column(Integer(), primary_key=True) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) api_key = Column(String(255), nullable=False, unique=True) description = Column(UnicodeText(), nullable=False) @@ -735,7 +735,7 @@ class UserEmailMap(Base, BaseModel): ) __mapper_args__ = {} - email_id = Column(Integer(), unique=True, primary_key=True) + email_id = Column(Integer(), primary_key=True) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) _email = Column("email", String(255), nullable=False, unique=True) user = relationship('User') @@ -765,7 +765,7 @@ class UserIpMap(Base, BaseModel): ) __mapper_args__ = {} - ip_id = Column(Integer(), unique=True, primary_key=True) + ip_id = Column(Integer(), primary_key=True) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) ip_addr = Column(String(255), nullable=False) active = Column(Boolean(), nullable=False, default=True) @@ -793,7 +793,7 @@ class UserLog(Base, BaseModel): _table_args_default_dict, ) - user_log_id = Column(Integer(), unique=True, primary_key=True) + user_log_id = Column(Integer(), primary_key=True) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True) username = Column(String(255), nullable=False) repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=True) @@ -821,7 +821,7 @@ class UserGroup(Base, BaseModel): _table_args_default_dict, ) - users_group_id = Column(Integer(), unique=True, primary_key=True) + users_group_id = Column(Integer(), primary_key=True) users_group_name = Column(Unicode(255), nullable=False, unique=True) user_group_description = Column(Unicode(10000), nullable=True) # FIXME: not nullable? users_group_active = Column(Boolean(), nullable=False) @@ -910,7 +910,7 @@ class UserGroupMember(Base, BaseModel): _table_args_default_dict, ) - users_group_member_id = Column(Integer(), unique=True, primary_key=True) + users_group_member_id = Column(Integer(), primary_key=True) users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) @@ -931,7 +931,7 @@ class RepositoryField(Base, BaseModel): PREFIX = 'ex_' # prefix used in form to not conflict with already existing fields - repo_field_id = Column(Integer(), unique=True, primary_key=True) + repo_field_id = Column(Integer(), primary_key=True) repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False) field_key = Column(String(250), nullable=False) field_label = Column(String(1024), nullable=False) @@ -974,7 +974,7 @@ class Repository(Base, BaseModel): STATE_PENDING = 'repo_state_pending' STATE_ERROR = 'repo_state_error' - repo_id = Column(Integer(), unique=True, primary_key=True) + repo_id = Column(Integer(), primary_key=True) repo_name = Column(Unicode(255), nullable=False, unique=True) repo_state = Column(String(255), nullable=False) @@ -1492,7 +1492,7 @@ class RepoGroup(Base, BaseModel): SEP = ' » ' - group_id = Column(Integer(), unique=True, primary_key=True) + group_id = Column(Integer(), primary_key=True) group_name = Column(Unicode(255), nullable=False, unique=True) group_parent_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=True) group_description = Column(Unicode(10000), nullable=False) @@ -1753,7 +1753,7 @@ class Permission(Base, BaseModel): 'hg.create.repository': 1 } - permission_id = Column(Integer(), unique=True, primary_key=True) + permission_id = Column(Integer(), primary_key=True) permission_name = Column(String(255), nullable=False) def __unicode__(self): @@ -1800,7 +1800,7 @@ class UserRepoToPerm(Base, BaseModel): _table_args_default_dict, ) - repo_to_perm_id = Column(Integer(), unique=True, primary_key=True) + repo_to_perm_id = Column(Integer(), primary_key=True) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False) repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False) @@ -1829,7 +1829,7 @@ class UserUserGroupToPerm(Base, BaseMode _table_args_default_dict, ) - user_user_group_to_perm_id = Column(Integer(), unique=True, primary_key=True) + user_user_group_to_perm_id = Column(Integer(), primary_key=True) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False) user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False) @@ -1858,7 +1858,7 @@ class UserToPerm(Base, BaseModel): _table_args_default_dict, ) - user_to_perm_id = Column(Integer(), unique=True, primary_key=True) + user_to_perm_id = Column(Integer(), primary_key=True) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False) @@ -1876,7 +1876,7 @@ class UserGroupRepoToPerm(Base, BaseMode _table_args_default_dict, ) - users_group_to_perm_id = Column(Integer(), unique=True, primary_key=True) + users_group_to_perm_id = Column(Integer(), primary_key=True) users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False) permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False) repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False) @@ -1906,7 +1906,7 @@ class UserGroupUserGroupToPerm(Base, Bas _table_args_default_dict, ) - user_group_user_group_to_perm_id = Column(Integer(), unique=True, primary_key=True) + user_group_user_group_to_perm_id = Column(Integer(), primary_key=True) target_user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False) permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False) user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False) @@ -1935,7 +1935,7 @@ class UserGroupToPerm(Base, BaseModel): _table_args_default_dict, ) - users_group_to_perm_id = Column(Integer(), unique=True, primary_key=True) + users_group_to_perm_id = Column(Integer(), primary_key=True) users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False) permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False) @@ -1950,7 +1950,7 @@ class UserRepoGroupToPerm(Base, BaseMode _table_args_default_dict, ) - group_to_perm_id = Column(Integer(), unique=True, primary_key=True) + group_to_perm_id = Column(Integer(), primary_key=True) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) group_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=False) permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False) @@ -1976,7 +1976,7 @@ class UserGroupRepoGroupToPerm(Base, Bas _table_args_default_dict, ) - users_group_repo_group_to_perm_id = Column(Integer(), unique=True, primary_key=True) + users_group_repo_group_to_perm_id = Column(Integer(), primary_key=True) users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False) group_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=False) permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False) @@ -2001,7 +2001,7 @@ class Statistics(Base, BaseModel): _table_args_default_dict, ) - stat_id = Column(Integer(), unique=True, primary_key=True) + stat_id = Column(Integer(), primary_key=True) repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=True) stat_on_revision = Column(Integer(), nullable=False) commit_activity = Column(LargeBinary(1000000), nullable=False)#JSON data @@ -2019,7 +2019,7 @@ class UserFollowing(Base, BaseModel): _table_args_default_dict, ) - user_following_id = Column(Integer(), unique=True, primary_key=True) + user_following_id = Column(Integer(), primary_key=True) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) follows_repo_id = Column("follows_repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True) follows_user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True) @@ -2043,7 +2043,7 @@ class CacheInvalidation(Base, BaseModel) ) # cache_id, not used - cache_id = Column(Integer(), unique=True, primary_key=True) + cache_id = Column(Integer(), primary_key=True) # cache_key as created by _get_cache_key cache_key = Column(Unicode(255), nullable=False, unique=True) # cache_args is a repo_name @@ -2168,7 +2168,7 @@ class ChangesetComment(Base, BaseModel): _table_args_default_dict, ) - comment_id = Column(Integer(), unique=True, primary_key=True) + comment_id = Column(Integer(), primary_key=True) repo_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False) revision = Column(String(40), nullable=True) pull_request_id = Column(Integer(), ForeignKey('pull_requests.pull_request_id'), nullable=True) @@ -2243,7 +2243,7 @@ class ChangesetStatus(Base, BaseModel): ] STATUSES_DICT = dict(STATUSES) - changeset_status_id = Column(Integer(), unique=True, primary_key=True) + changeset_status_id = Column(Integer(), primary_key=True) repo_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) revision = Column(String(40), nullable=True) @@ -2285,7 +2285,7 @@ class PullRequest(Base, BaseModel): STATUS_NEW = u'new' STATUS_CLOSED = u'closed' - pull_request_id = Column(Integer(), unique=True, primary_key=True) + pull_request_id = Column(Integer(), primary_key=True) title = Column(Unicode(255), nullable=False) description = Column(UnicodeText(), nullable=False) status = Column(Unicode(255), nullable=False, default=STATUS_NEW) # only for closedness, not approve/reject/etc @@ -2384,7 +2384,7 @@ class PullRequestReviewers(Base, BaseMod self.user = user self.pull_request = pull_request - pull_requests_reviewers_id = Column(Integer(), unique=True, primary_key=True) + pull_requests_reviewers_id = Column(Integer(), primary_key=True) pull_request_id = Column(Integer(), ForeignKey('pull_requests.pull_request_id'), nullable=False) user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False) @@ -2406,7 +2406,7 @@ class Notification(Base, BaseModel): TYPE_PULL_REQUEST = u'pull_request' TYPE_PULL_REQUEST_COMMENT = u'pull_request_comment' - notification_id = Column(Integer(), unique=True, primary_key=True) + notification_id = Column(Integer(), primary_key=True) subject = Column(Unicode(512), nullable=False) body = Column(UnicodeText(), nullable=False) created_by = Column(Integer(), ForeignKey('users.user_id'), nullable=False) @@ -2485,7 +2485,7 @@ class Gist(Base, BaseModel): GIST_PRIVATE = u'private' DEFAULT_FILENAME = u'gistfile1.txt' - gist_id = Column(Integer(), unique=True, primary_key=True) + gist_id = Column(Integer(), primary_key=True) gist_access_id = Column(Unicode(250), nullable=False) gist_description = Column(UnicodeText(), nullable=False) gist_owner = Column('user_id', Integer(), ForeignKey('users.user_id'), nullable=False) @@ -2569,6 +2569,6 @@ class DbMigrateVersion(Base, BaseModel): _table_args_default_dict, ) - repository_id = Column(String(250), unique=True, primary_key=True) + repository_id = Column(String(250), primary_key=True) repository_path = Column(Text, nullable=False) version = Column(Integer, nullable=False)