Mercurial > kallithea
comparison rhodecode/model/db.py @ 2356:2da7b5984ae5 beta
typo fix + code garden
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 28 May 2012 23:31:17 +0200 |
parents | 90e06f53af8c |
children | ea079c9b62b5 e87c6aa9c5e7 |
comparison
equal
deleted
inserted
replaced
2354:f3417f0d54b5 | 2356:2da7b5984ae5 |
---|---|
25 | 25 |
26 import os | 26 import os |
27 import logging | 27 import logging |
28 import datetime | 28 import datetime |
29 import traceback | 29 import traceback |
30 import hashlib | |
30 from collections import defaultdict | 31 from collections import defaultdict |
31 | 32 |
32 from sqlalchemy import * | 33 from sqlalchemy import * |
33 from sqlalchemy.ext.hybrid import hybrid_property | 34 from sqlalchemy.ext.hybrid import hybrid_property |
34 from sqlalchemy.orm import relationship, joinedload, class_mapper, validates | 35 from sqlalchemy.orm import relationship, joinedload, class_mapper, validates |
41 | 42 |
42 from rhodecode.lib.utils2 import str2bool, safe_str, get_changeset_safe, \ | 43 from rhodecode.lib.utils2 import str2bool, safe_str, get_changeset_safe, \ |
43 safe_unicode | 44 safe_unicode |
44 from rhodecode.lib.compat import json | 45 from rhodecode.lib.compat import json |
45 from rhodecode.lib.caching_query import FromCache | 46 from rhodecode.lib.caching_query import FromCache |
46 | |
47 from rhodecode.model.meta import Base, Session | 47 from rhodecode.model.meta import Base, Session |
48 import hashlib | 48 |
49 | 49 |
50 URL_SEP = '/' | 50 URL_SEP = '/' |
51 log = logging.getLogger(__name__) | 51 log = logging.getLogger(__name__) |
52 | 52 |
53 #============================================================================== | 53 #============================================================================== |
150 if hasattr(self, '__unicode__'): | 150 if hasattr(self, '__unicode__'): |
151 # python repr needs to return str | 151 # python repr needs to return str |
152 return safe_str(self.__unicode__()) | 152 return safe_str(self.__unicode__()) |
153 return '<DB:%s>' % (self.__class__.__name__) | 153 return '<DB:%s>' % (self.__class__.__name__) |
154 | 154 |
155 | |
155 class RhodeCodeSetting(Base, BaseModel): | 156 class RhodeCodeSetting(Base, BaseModel): |
156 __tablename__ = 'rhodecode_settings' | 157 __tablename__ = 'rhodecode_settings' |
157 __table_args__ = ( | 158 __table_args__ = ( |
158 UniqueConstraint('app_settings_name'), | 159 UniqueConstraint('app_settings_name'), |
159 {'extend_existing': True, 'mysql_engine':'InnoDB', | 160 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
160 'mysql_charset': 'utf8'} | 161 'mysql_charset': 'utf8'} |
161 ) | 162 ) |
162 app_settings_id = Column("app_settings_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 163 app_settings_id = Column("app_settings_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
163 app_settings_name = Column("app_settings_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 164 app_settings_name = Column("app_settings_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
164 _app_settings_value = Column("app_settings_value", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 165 _app_settings_value = Column("app_settings_value", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
220 def get_ldap_settings(cls, cache=False): | 221 def get_ldap_settings(cls, cache=False): |
221 ret = cls.query()\ | 222 ret = cls.query()\ |
222 .filter(cls.app_settings_name.startswith('ldap_')).all() | 223 .filter(cls.app_settings_name.startswith('ldap_')).all() |
223 fd = {} | 224 fd = {} |
224 for row in ret: | 225 for row in ret: |
225 fd.update({row.app_settings_name:row.app_settings_value}) | 226 fd.update({row.app_settings_name: row.app_settings_value}) |
226 | 227 |
227 return fd | 228 return fd |
228 | 229 |
229 | 230 |
230 class RhodeCodeUi(Base, BaseModel): | 231 class RhodeCodeUi(Base, BaseModel): |
231 __tablename__ = 'rhodecode_ui' | 232 __tablename__ = 'rhodecode_ui' |
232 __table_args__ = ( | 233 __table_args__ = ( |
233 UniqueConstraint('ui_key'), | 234 UniqueConstraint('ui_key'), |
234 {'extend_existing': True, 'mysql_engine':'InnoDB', | 235 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
235 'mysql_charset': 'utf8'} | 236 'mysql_charset': 'utf8'} |
236 ) | 237 ) |
237 | 238 |
238 HOOK_UPDATE = 'changegroup.update' | 239 HOOK_UPDATE = 'changegroup.update' |
239 HOOK_REPO_SIZE = 'changegroup.repo_size' | 240 HOOK_REPO_SIZE = 'changegroup.repo_size' |
280 | 281 |
281 class User(Base, BaseModel): | 282 class User(Base, BaseModel): |
282 __tablename__ = 'users' | 283 __tablename__ = 'users' |
283 __table_args__ = ( | 284 __table_args__ = ( |
284 UniqueConstraint('username'), UniqueConstraint('email'), | 285 UniqueConstraint('username'), UniqueConstraint('email'), |
285 {'extend_existing': True, 'mysql_engine':'InnoDB', | 286 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
286 'mysql_charset': 'utf8'} | 287 'mysql_charset': 'utf8'} |
287 ) | 288 ) |
288 user_id = Column("user_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 289 user_id = Column("user_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
289 username = Column("username", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 290 username = Column("username", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
290 password = Column("password", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 291 password = Column("password", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
402 | 403 |
403 | 404 |
404 class UserLog(Base, BaseModel): | 405 class UserLog(Base, BaseModel): |
405 __tablename__ = 'user_logs' | 406 __tablename__ = 'user_logs' |
406 __table_args__ = ( | 407 __table_args__ = ( |
407 {'extend_existing': True, 'mysql_engine':'InnoDB', | 408 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
408 'mysql_charset': 'utf8'}, | 409 'mysql_charset': 'utf8'}, |
409 ) | 410 ) |
410 user_log_id = Column("user_log_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 411 user_log_id = Column("user_log_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
411 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) | 412 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) |
412 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True) | 413 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=True) |
424 | 425 |
425 | 426 |
426 class UsersGroup(Base, BaseModel): | 427 class UsersGroup(Base, BaseModel): |
427 __tablename__ = 'users_groups' | 428 __tablename__ = 'users_groups' |
428 __table_args__ = ( | 429 __table_args__ = ( |
429 {'extend_existing': True, 'mysql_engine':'InnoDB', | 430 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
430 'mysql_charset': 'utf8'}, | 431 'mysql_charset': 'utf8'}, |
431 ) | 432 ) |
432 | 433 |
433 users_group_id = Column("users_group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 434 users_group_id = Column("users_group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
434 users_group_name = Column("users_group_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None) | 435 users_group_name = Column("users_group_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None) |
466 | 467 |
467 | 468 |
468 class UsersGroupMember(Base, BaseModel): | 469 class UsersGroupMember(Base, BaseModel): |
469 __tablename__ = 'users_groups_members' | 470 __tablename__ = 'users_groups_members' |
470 __table_args__ = ( | 471 __table_args__ = ( |
471 {'extend_existing': True, 'mysql_engine':'InnoDB', | 472 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
472 'mysql_charset': 'utf8'}, | 473 'mysql_charset': 'utf8'}, |
473 ) | 474 ) |
474 | 475 |
475 users_group_member_id = Column("users_group_member_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 476 users_group_member_id = Column("users_group_member_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
476 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) | 477 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) |
486 | 487 |
487 class Repository(Base, BaseModel): | 488 class Repository(Base, BaseModel): |
488 __tablename__ = 'repositories' | 489 __tablename__ = 'repositories' |
489 __table_args__ = ( | 490 __table_args__ = ( |
490 UniqueConstraint('repo_name'), | 491 UniqueConstraint('repo_name'), |
491 {'extend_existing': True, 'mysql_engine':'InnoDB', | 492 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
492 'mysql_charset': 'utf8'}, | 493 'mysql_charset': 'utf8'}, |
493 ) | 494 ) |
494 | 495 |
495 repo_id = Column("repo_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 496 repo_id = Column("repo_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
496 repo_name = Column("repo_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None) | 497 repo_name = Column("repo_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None) |
702 | 703 |
703 if cache_map: | 704 if cache_map: |
704 # get using prefilled cache_map | 705 # get using prefilled cache_map |
705 invalidate_repo = cache_map[self.repo_name] | 706 invalidate_repo = cache_map[self.repo_name] |
706 if invalidate_repo: | 707 if invalidate_repo: |
707 invalidate_repo = (None if invalidate_repo.cache_active | 708 invalidate_repo = (None if invalidate_repo.cache_active |
708 else invalidate_repo) | 709 else invalidate_repo) |
709 else: | 710 else: |
710 # get from invalidate | 711 # get from invalidate |
711 invalidate_repo = self.invalidate | 712 invalidate_repo = self.invalidate |
712 | 713 |
745 class RepoGroup(Base, BaseModel): | 746 class RepoGroup(Base, BaseModel): |
746 __tablename__ = 'groups' | 747 __tablename__ = 'groups' |
747 __table_args__ = ( | 748 __table_args__ = ( |
748 UniqueConstraint('group_name', 'group_parent_id'), | 749 UniqueConstraint('group_name', 'group_parent_id'), |
749 CheckConstraint('group_id != group_parent_id'), | 750 CheckConstraint('group_id != group_parent_id'), |
750 {'extend_existing': True, 'mysql_engine':'InnoDB', | 751 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
751 'mysql_charset': 'utf8'}, | 752 'mysql_charset': 'utf8'}, |
752 ) | 753 ) |
753 __mapper_args__ = {'order_by': 'group_name'} | 754 __mapper_args__ = {'order_by': 'group_name'} |
754 | 755 |
755 group_id = Column("group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 756 group_id = Column("group_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
874 | 875 |
875 | 876 |
876 class Permission(Base, BaseModel): | 877 class Permission(Base, BaseModel): |
877 __tablename__ = 'permissions' | 878 __tablename__ = 'permissions' |
878 __table_args__ = ( | 879 __table_args__ = ( |
879 {'extend_existing': True, 'mysql_engine':'InnoDB', | 880 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
880 'mysql_charset': 'utf8'}, | 881 'mysql_charset': 'utf8'}, |
881 ) | 882 ) |
882 permission_id = Column("permission_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 883 permission_id = Column("permission_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
883 permission_name = Column("permission_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 884 permission_name = Column("permission_name", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
884 permission_longname = Column("permission_longname", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 885 permission_longname = Column("permission_longname", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
913 | 914 |
914 class UserRepoToPerm(Base, BaseModel): | 915 class UserRepoToPerm(Base, BaseModel): |
915 __tablename__ = 'repo_to_perm' | 916 __tablename__ = 'repo_to_perm' |
916 __table_args__ = ( | 917 __table_args__ = ( |
917 UniqueConstraint('user_id', 'repository_id', 'permission_id'), | 918 UniqueConstraint('user_id', 'repository_id', 'permission_id'), |
918 {'extend_existing': True, 'mysql_engine':'InnoDB', | 919 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
919 'mysql_charset': 'utf8'} | 920 'mysql_charset': 'utf8'} |
920 ) | 921 ) |
921 repo_to_perm_id = Column("repo_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 922 repo_to_perm_id = Column("repo_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
922 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) | 923 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) |
923 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) | 924 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) |
942 | 943 |
943 class UserToPerm(Base, BaseModel): | 944 class UserToPerm(Base, BaseModel): |
944 __tablename__ = 'user_to_perm' | 945 __tablename__ = 'user_to_perm' |
945 __table_args__ = ( | 946 __table_args__ = ( |
946 UniqueConstraint('user_id', 'permission_id'), | 947 UniqueConstraint('user_id', 'permission_id'), |
947 {'extend_existing': True, 'mysql_engine':'InnoDB', | 948 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
948 'mysql_charset': 'utf8'} | 949 'mysql_charset': 'utf8'} |
949 ) | 950 ) |
950 user_to_perm_id = Column("user_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 951 user_to_perm_id = Column("user_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
951 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) | 952 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) |
952 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) | 953 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) |
957 | 958 |
958 class UsersGroupRepoToPerm(Base, BaseModel): | 959 class UsersGroupRepoToPerm(Base, BaseModel): |
959 __tablename__ = 'users_group_repo_to_perm' | 960 __tablename__ = 'users_group_repo_to_perm' |
960 __table_args__ = ( | 961 __table_args__ = ( |
961 UniqueConstraint('repository_id', 'users_group_id', 'permission_id'), | 962 UniqueConstraint('repository_id', 'users_group_id', 'permission_id'), |
962 {'extend_existing': True, 'mysql_engine':'InnoDB', | 963 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
963 'mysql_charset': 'utf8'} | 964 'mysql_charset': 'utf8'} |
964 ) | 965 ) |
965 users_group_to_perm_id = Column("users_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 966 users_group_to_perm_id = Column("users_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
966 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) | 967 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) |
967 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) | 968 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) |
986 | 987 |
987 class UsersGroupToPerm(Base, BaseModel): | 988 class UsersGroupToPerm(Base, BaseModel): |
988 __tablename__ = 'users_group_to_perm' | 989 __tablename__ = 'users_group_to_perm' |
989 __table_args__ = ( | 990 __table_args__ = ( |
990 UniqueConstraint('users_group_id', 'permission_id',), | 991 UniqueConstraint('users_group_id', 'permission_id',), |
991 {'extend_existing': True, 'mysql_engine':'InnoDB', | 992 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
992 'mysql_charset': 'utf8'} | 993 'mysql_charset': 'utf8'} |
993 ) | 994 ) |
994 users_group_to_perm_id = Column("users_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 995 users_group_to_perm_id = Column("users_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
995 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) | 996 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) |
996 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) | 997 permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) |
1001 | 1002 |
1002 class UserRepoGroupToPerm(Base, BaseModel): | 1003 class UserRepoGroupToPerm(Base, BaseModel): |
1003 __tablename__ = 'user_repo_group_to_perm' | 1004 __tablename__ = 'user_repo_group_to_perm' |
1004 __table_args__ = ( | 1005 __table_args__ = ( |
1005 UniqueConstraint('user_id', 'group_id', 'permission_id'), | 1006 UniqueConstraint('user_id', 'group_id', 'permission_id'), |
1006 {'extend_existing': True, 'mysql_engine':'InnoDB', | 1007 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
1007 'mysql_charset': 'utf8'} | 1008 'mysql_charset': 'utf8'} |
1008 ) | 1009 ) |
1009 | 1010 |
1010 group_to_perm_id = Column("group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 1011 group_to_perm_id = Column("group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
1011 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) | 1012 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) |
1019 | 1020 |
1020 class UsersGroupRepoGroupToPerm(Base, BaseModel): | 1021 class UsersGroupRepoGroupToPerm(Base, BaseModel): |
1021 __tablename__ = 'users_group_repo_group_to_perm' | 1022 __tablename__ = 'users_group_repo_group_to_perm' |
1022 __table_args__ = ( | 1023 __table_args__ = ( |
1023 UniqueConstraint('users_group_id', 'group_id'), | 1024 UniqueConstraint('users_group_id', 'group_id'), |
1024 {'extend_existing': True, 'mysql_engine':'InnoDB', | 1025 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
1025 'mysql_charset': 'utf8'} | 1026 'mysql_charset': 'utf8'} |
1026 ) | 1027 ) |
1027 | 1028 |
1028 users_group_repo_group_to_perm_id = Column("users_group_repo_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 1029 users_group_repo_group_to_perm_id = Column("users_group_repo_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
1029 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) | 1030 users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) |
1037 | 1038 |
1038 class Statistics(Base, BaseModel): | 1039 class Statistics(Base, BaseModel): |
1039 __tablename__ = 'statistics' | 1040 __tablename__ = 'statistics' |
1040 __table_args__ = ( | 1041 __table_args__ = ( |
1041 UniqueConstraint('repository_id'), | 1042 UniqueConstraint('repository_id'), |
1042 {'extend_existing': True, 'mysql_engine':'InnoDB', | 1043 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
1043 'mysql_charset': 'utf8'} | 1044 'mysql_charset': 'utf8'} |
1044 ) | 1045 ) |
1045 stat_id = Column("stat_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 1046 stat_id = Column("stat_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
1046 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=True, default=None) | 1047 repository_id = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'), nullable=False, unique=True, default=None) |
1047 stat_on_revision = Column("stat_on_revision", Integer(), nullable=False) | 1048 stat_on_revision = Column("stat_on_revision", Integer(), nullable=False) |
1055 class UserFollowing(Base, BaseModel): | 1056 class UserFollowing(Base, BaseModel): |
1056 __tablename__ = 'user_followings' | 1057 __tablename__ = 'user_followings' |
1057 __table_args__ = ( | 1058 __table_args__ = ( |
1058 UniqueConstraint('user_id', 'follows_repository_id'), | 1059 UniqueConstraint('user_id', 'follows_repository_id'), |
1059 UniqueConstraint('user_id', 'follows_user_id'), | 1060 UniqueConstraint('user_id', 'follows_user_id'), |
1060 {'extend_existing': True, 'mysql_engine':'InnoDB', | 1061 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
1061 'mysql_charset': 'utf8'} | 1062 'mysql_charset': 'utf8'} |
1062 ) | 1063 ) |
1063 | 1064 |
1064 user_following_id = Column("user_following_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 1065 user_following_id = Column("user_following_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
1065 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) | 1066 user_id = Column("user_id", Integer(), ForeignKey('users.user_id'), nullable=False, unique=None, default=None) |
1080 class CacheInvalidation(Base, BaseModel): | 1081 class CacheInvalidation(Base, BaseModel): |
1081 __tablename__ = 'cache_invalidation' | 1082 __tablename__ = 'cache_invalidation' |
1082 __table_args__ = ( | 1083 __table_args__ = ( |
1083 UniqueConstraint('cache_key'), | 1084 UniqueConstraint('cache_key'), |
1084 Index('key_idx', 'cache_key'), | 1085 Index('key_idx', 'cache_key'), |
1085 {'extend_existing': True, 'mysql_engine':'InnoDB', | 1086 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
1086 'mysql_charset': 'utf8'}, | 1087 'mysql_charset': 'utf8'}, |
1087 ) | 1088 ) |
1088 cache_id = Column("cache_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) | 1089 cache_id = Column("cache_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) |
1089 cache_key = Column("cache_key", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 1090 cache_key = Column("cache_key", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
1090 cache_args = Column("cache_args", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) | 1091 cache_args = Column("cache_args", String(length=255, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) |
1126 inv_obj = Session.query(cls).filter(cls.cache_key == key).scalar() | 1127 inv_obj = Session.query(cls).filter(cls.cache_key == key).scalar() |
1127 if not inv_obj: | 1128 if not inv_obj: |
1128 try: | 1129 try: |
1129 inv_obj = CacheInvalidation(key, org_key) | 1130 inv_obj = CacheInvalidation(key, org_key) |
1130 Session.add(inv_obj) | 1131 Session.add(inv_obj) |
1131 #Session.commit() | 1132 Session.commit() |
1132 except Exception: | 1133 except Exception: |
1133 log.error(traceback.format_exc()) | 1134 log.error(traceback.format_exc()) |
1134 Session.rollback() | 1135 Session.rollback() |
1135 return inv_obj | 1136 return inv_obj |
1136 | 1137 |
1192 | 1193 |
1193 def __init__(self, *args, **kwargs): | 1194 def __init__(self, *args, **kwargs): |
1194 fixkey = kwargs.get('fixkey') | 1195 fixkey = kwargs.get('fixkey') |
1195 if fixkey: | 1196 if fixkey: |
1196 del kwargs['fixkey'] | 1197 del kwargs['fixkey'] |
1197 self.fixkey = fixkey | 1198 self.fixkey = fixkey |
1198 super(cachemapdict, self).__init__(*args, **kwargs) | 1199 super(cachemapdict, self).__init__(*args, **kwargs) |
1199 | 1200 |
1200 def __getattr__(self, name): | 1201 def __getattr__(self, name): |
1201 key = name | 1202 key = name |
1202 if self.fixkey: | 1203 if self.fixkey: |
1221 | 1222 |
1222 | 1223 |
1223 class ChangesetComment(Base, BaseModel): | 1224 class ChangesetComment(Base, BaseModel): |
1224 __tablename__ = 'changeset_comments' | 1225 __tablename__ = 'changeset_comments' |
1225 __table_args__ = ( | 1226 __table_args__ = ( |
1226 {'extend_existing': True, 'mysql_engine':'InnoDB', | 1227 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
1227 'mysql_charset': 'utf8'}, | 1228 'mysql_charset': 'utf8'}, |
1228 ) | 1229 ) |
1229 comment_id = Column('comment_id', Integer(), nullable=False, primary_key=True) | 1230 comment_id = Column('comment_id', Integer(), nullable=False, primary_key=True) |
1230 repo_id = Column('repo_id', Integer(), ForeignKey('repositories.repo_id'), nullable=False) | 1231 repo_id = Column('repo_id', Integer(), ForeignKey('repositories.repo_id'), nullable=False) |
1231 revision = Column('revision', String(40), nullable=False) | 1232 revision = Column('revision', String(40), nullable=False) |
1253 | 1254 |
1254 | 1255 |
1255 class Notification(Base, BaseModel): | 1256 class Notification(Base, BaseModel): |
1256 __tablename__ = 'notifications' | 1257 __tablename__ = 'notifications' |
1257 __table_args__ = ( | 1258 __table_args__ = ( |
1258 {'extend_existing': True, 'mysql_engine':'InnoDB', | 1259 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
1259 'mysql_charset': 'utf8'}, | 1260 'mysql_charset': 'utf8'}, |
1260 ) | 1261 ) |
1261 | 1262 |
1262 TYPE_CHANGESET_COMMENT = u'cs_comment' | 1263 TYPE_CHANGESET_COMMENT = u'cs_comment' |
1263 TYPE_MESSAGE = u'message' | 1264 TYPE_MESSAGE = u'message' |
1308 | 1309 |
1309 class UserNotification(Base, BaseModel): | 1310 class UserNotification(Base, BaseModel): |
1310 __tablename__ = 'user_to_notification' | 1311 __tablename__ = 'user_to_notification' |
1311 __table_args__ = ( | 1312 __table_args__ = ( |
1312 UniqueConstraint('user_id', 'notification_id'), | 1313 UniqueConstraint('user_id', 'notification_id'), |
1313 {'extend_existing': True, 'mysql_engine':'InnoDB', | 1314 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
1314 'mysql_charset': 'utf8'} | 1315 'mysql_charset': 'utf8'} |
1315 ) | 1316 ) |
1316 user_id = Column('user_id', Integer(), ForeignKey('users.user_id'), primary_key=True) | 1317 user_id = Column('user_id', Integer(), ForeignKey('users.user_id'), primary_key=True) |
1317 notification_id = Column("notification_id", Integer(), ForeignKey('notifications.notification_id'), primary_key=True) | 1318 notification_id = Column("notification_id", Integer(), ForeignKey('notifications.notification_id'), primary_key=True) |
1318 read = Column('read', Boolean, default=False) | 1319 read = Column('read', Boolean, default=False) |
1328 | 1329 |
1329 | 1330 |
1330 class DbMigrateVersion(Base, BaseModel): | 1331 class DbMigrateVersion(Base, BaseModel): |
1331 __tablename__ = 'db_migrate_version' | 1332 __tablename__ = 'db_migrate_version' |
1332 __table_args__ = ( | 1333 __table_args__ = ( |
1333 {'extend_existing': True, 'mysql_engine':'InnoDB', | 1334 {'extend_existing': True, 'mysql_engine': 'InnoDB', |
1334 'mysql_charset': 'utf8'}, | 1335 'mysql_charset': 'utf8'}, |
1335 ) | 1336 ) |
1336 repository_id = Column('repository_id', String(250), primary_key=True) | 1337 repository_id = Column('repository_id', String(250), primary_key=True) |
1337 repository_path = Column('repository_path', Text) | 1338 repository_path = Column('repository_path', Text) |
1338 version = Column('version', Integer) | 1339 version = Column('version', Integer) |