changeset 5109:a7b20e31bb36

db: more consistently set primary keys to be unique, not nullable and without default Setting primary_key will (in general) automatically set autoincrement and setting a default is just odd.
author Mads Kiilerich <madski@unity3d.com>
date Thu, 07 May 2015 16:26:40 +0200
parents c564075ef01b
children 54de85a17b2b
files kallithea/model/db.py
diffstat 1 files changed, 30 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/model/db.py	Thu May 07 16:26:40 2015 +0200
+++ b/kallithea/model/db.py	Thu May 07 16:26:40 2015 +0200
@@ -175,7 +175,7 @@
     }
     DEFAULT_UPDATE_URL = ''
 
-    app_settings_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    app_settings_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     app_settings_name = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None)
     _app_settings_value = Column("app_settings_value", String(4096, convert_unicode=False), nullable=True, unique=None, default=None)
     _app_settings_type = Column("app_settings_type", String(255, convert_unicode=False), nullable=True, unique=None, default=None)
@@ -338,7 +338,7 @@
     HOOK_PULL = 'outgoing.pull_logger'
     HOOK_PRE_PULL = 'preoutgoing.pre_pull'
 
-    ui_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    ui_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     ui_section = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None)
     ui_key = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None)
     ui_value = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None)
@@ -401,7 +401,7 @@
     DEFAULT_USER = 'default'
     DEFAULT_GRAVATAR_URL = 'https://secure.gravatar.com/avatar/{md5email}?d=identicon&s={size}'
 
-    user_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    user_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     username = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None)
     password = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None)
     active = Column(Boolean(), nullable=True, unique=None, default=True)
@@ -675,7 +675,7 @@
     )
     __mapper_args__ = {}
 
-    user_api_key_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    user_api_key_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None)
     api_key = Column(String(255, convert_unicode=False), nullable=False, unique=True)
     description = Column(UnicodeText(1024))
@@ -701,7 +701,7 @@
     )
     __mapper_args__ = {}
 
-    email_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    email_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None)
     _email = Column("email", String(255, convert_unicode=False), nullable=True, unique=False, default=None)
     user = relationship('User')
@@ -732,7 +732,7 @@
     )
     __mapper_args__ = {}
 
-    ip_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    ip_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None)
     ip_addr = Column(String(255, convert_unicode=False), nullable=True, unique=False, default=None)
     active = Column(Boolean(), nullable=True, unique=None, default=True)
@@ -760,7 +760,7 @@
         {'extend_existing': True, 'mysql_engine': 'InnoDB',
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True},
     )
-    user_log_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    user_log_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None)
     username = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None)
     repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=True)
@@ -789,7 +789,7 @@
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True},
     )
 
-    users_group_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    users_group_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     users_group_name = Column(String(255, convert_unicode=False), nullable=False, unique=True, default=None)
     user_group_description = Column(String(10000, convert_unicode=False), nullable=True, unique=None, default=None)
     users_group_active = Column(Boolean(), nullable=True, unique=None, default=None)
@@ -879,7 +879,7 @@
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True},
     )
 
-    users_group_member_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    users_group_member_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
 
@@ -900,7 +900,7 @@
     )
     PREFIX = 'ex_'  # prefix used in form to not conflict with already existing fields
 
-    repo_field_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    repo_field_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None)
     field_key = Column(String(250, convert_unicode=False))
     field_label = Column(String(1024, convert_unicode=False), nullable=False)
@@ -944,7 +944,7 @@
     STATE_PENDING = 'repo_state_pending'
     STATE_ERROR = 'repo_state_error'
 
-    repo_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    repo_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     repo_name = Column(String(255, convert_unicode=False), nullable=False, unique=True, default=None)
     repo_state = Column(String(255), nullable=True)
 
@@ -1464,7 +1464,7 @@
 
     SEP = ' &raquo; '
 
-    group_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    group_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     group_name = Column(String(255, convert_unicode=False), nullable=False, unique=True, default=None)
     group_parent_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=True, unique=None, default=None)
     group_description = Column(String(10000, convert_unicode=False), nullable=True, unique=None, default=None)
@@ -1729,7 +1729,7 @@
         'hg.create.repository': 1
     }
 
-    permission_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    permission_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     permission_name = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None)
     permission_longname = Column(String(255, convert_unicode=False), nullable=True, unique=None, default=None)
 
@@ -1777,7 +1777,7 @@
         {'extend_existing': True, 'mysql_engine': 'InnoDB',
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True}
     )
-    repo_to_perm_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    repo_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
     repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None)
@@ -1806,7 +1806,7 @@
         {'extend_existing': True, 'mysql_engine': 'InnoDB',
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True}
     )
-    user_user_group_to_perm_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    user_user_group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
     user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
@@ -1835,7 +1835,7 @@
         {'extend_existing': True, 'mysql_engine': 'InnoDB',
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True}
     )
-    user_to_perm_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    user_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
 
@@ -1853,7 +1853,7 @@
         {'extend_existing': True, 'mysql_engine': 'InnoDB',
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True}
     )
-    users_group_to_perm_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    users_group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
     repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=None, default=None)
@@ -1883,7 +1883,7 @@
         {'extend_existing': True, 'mysql_engine': 'InnoDB',
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True}
     )
-    user_group_user_group_to_perm_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    user_group_user_group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     target_user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
     user_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
@@ -1912,7 +1912,7 @@
         {'extend_existing': True, 'mysql_engine': 'InnoDB',
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True}
     )
-    users_group_to_perm_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    users_group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
 
@@ -1928,7 +1928,7 @@
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True}
     )
 
-    group_to_perm_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
     group_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
@@ -1955,7 +1955,7 @@
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True}
     )
 
-    users_group_repo_group_to_perm_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    users_group_repo_group_to_perm_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     users_group_id = Column(Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None)
     group_id = Column(Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None)
     permission_id = Column(Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None)
@@ -1981,7 +1981,7 @@
          {'extend_existing': True, 'mysql_engine': 'InnoDB',
           'mysql_charset': 'utf8', 'sqlite_autoincrement': True}
     )
-    stat_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    stat_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     repository_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=True, default=None)
     stat_on_revision = Column(Integer(), nullable=False)
     commit_activity = Column(LargeBinary(1000000), nullable=False)#JSON data
@@ -2000,7 +2000,7 @@
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True}
     )
 
-    user_following_id = Column(Integer(), nullable=False, unique=True, default=None, primary_key=True)
+    user_following_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None)
     follows_repo_id = Column("follows_repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True, unique=None, default=None)
     follows_user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=True, unique=None, default=None)
@@ -2145,7 +2145,7 @@
         {'extend_existing': True, 'mysql_engine': 'InnoDB',
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True},
     )
-    comment_id = Column(Integer(), nullable=False, primary_key=True)
+    comment_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     repo_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False)
     revision = Column(String(40))
     pull_request_id = Column(Integer(), ForeignKey('pull_requests.pull_request_id'))
@@ -2208,7 +2208,7 @@
         (STATUS_UNDER_REVIEW, _("Under Review")),
     ]
 
-    changeset_status_id = Column(Integer(), nullable=False, primary_key=True)
+    changeset_status_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     repo_id = Column(Integer(), ForeignKey('repositories.repo_id'), nullable=False)
     user_id = Column(Integer(), ForeignKey('users.user_id'), nullable=False, unique=None)
     revision = Column(String(40), nullable=False)
@@ -2251,7 +2251,7 @@
     STATUS_NEW = u'new'
     STATUS_CLOSED = u'closed'
 
-    pull_request_id = Column(Integer(), primary_key=True)
+    pull_request_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     title = Column(Unicode(255), nullable=True)
     description = Column(UnicodeText(10240))
     status = Column(Unicode(255), nullable=False, default=STATUS_NEW) # only for closedness, not approve/reject/etc
@@ -2346,7 +2346,7 @@
         self.user = user
         self.pull_request = pull_request
 
-    pull_requests_reviewers_id = Column(Integer(), nullable=False, primary_key=True)
+    pull_requests_reviewers_id = Column(Integer(), nullable=False, unique=True, 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=True)
 
@@ -2369,7 +2369,7 @@
     TYPE_PULL_REQUEST = u'pull_request'
     TYPE_PULL_REQUEST_COMMENT = u'pull_request_comment'
 
-    notification_id = Column(Integer(), nullable=False, primary_key=True)
+    notification_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     subject = Column(Unicode(512), nullable=True)
     body = Column(UnicodeText(50000), nullable=True)
     created_by = Column(Integer(), ForeignKey('users.user_id'), nullable=True)
@@ -2444,7 +2444,7 @@
     GIST_PRIVATE = u'private'
     DEFAULT_FILENAME = u'gistfile1.txt'
 
-    gist_id = Column(Integer(), primary_key=True)
+    gist_id = Column(Integer(), nullable=False, unique=True, primary_key=True)
     gist_access_id = Column(Unicode(250))
     gist_description = Column(UnicodeText(1024))
     gist_owner = Column('user_id', Integer(), ForeignKey('users.user_id'), nullable=True)
@@ -2528,6 +2528,6 @@
         {'extend_existing': True, 'mysql_engine': 'InnoDB',
          'mysql_charset': 'utf8', 'sqlite_autoincrement': True},
     )
-    repository_id = Column(String(250), primary_key=True)
+    repository_id = Column(String(250), nullable=False, unique=True, primary_key=True)
     repository_path = Column(Text)
     version = Column(Integer)