##// END OF EJS Templates
Adde table for cache invalidation
marcink -
r670:e7c670cc beta
parent child Browse files
Show More
@@ -1,140 +1,149 b''
1 from rhodecode.model.meta import Base
1 from rhodecode.model.meta import Base
2 from sqlalchemy import *
2 from sqlalchemy import *
3 from sqlalchemy.orm import relation, backref
3 from sqlalchemy.orm import relation, backref
4 from sqlalchemy.orm.session import Session
4 from sqlalchemy.orm.session import Session
5 from vcs.utils.lazy import LazyProperty
5 from vcs.utils.lazy import LazyProperty
6 import logging
6 import logging
7 log = logging.getLogger(__name__)
7 log = logging.getLogger(__name__)
8
8
9 class RhodeCodeSettings(Base):
9 class RhodeCodeSettings(Base):
10 __tablename__ = 'rhodecode_settings'
10 __tablename__ = 'rhodecode_settings'
11 __table_args__ = (UniqueConstraint('app_settings_name'), {'useexisting':True})
11 __table_args__ = (UniqueConstraint('app_settings_name'), {'useexisting':True})
12 app_settings_id = Column("app_settings_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
12 app_settings_id = Column("app_settings_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
13 app_settings_name = Column("app_settings_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
13 app_settings_name = Column("app_settings_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
14 app_settings_value = Column("app_settings_value", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
14 app_settings_value = Column("app_settings_value", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
15
15
16 class RhodeCodeUi(Base):
16 class RhodeCodeUi(Base):
17 __tablename__ = 'rhodecode_ui'
17 __tablename__ = 'rhodecode_ui'
18 __table_args__ = {'useexisting':True}
18 __table_args__ = {'useexisting':True}
19 ui_id = Column("ui_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
19 ui_id = Column("ui_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
20 ui_section = Column("ui_section", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
20 ui_section = Column("ui_section", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
21 ui_key = Column("ui_key", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
21 ui_key = Column("ui_key", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
22 ui_value = Column("ui_value", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
22 ui_value = Column("ui_value", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
23 ui_active = Column("ui_active", BOOLEAN(), nullable=True, unique=None, default=True)
23 ui_active = Column("ui_active", BOOLEAN(), nullable=True, unique=None, default=True)
24
24
25
25
26 class User(Base):
26 class User(Base):
27 __tablename__ = 'users'
27 __tablename__ = 'users'
28 __table_args__ = (UniqueConstraint('username'), UniqueConstraint('email'), {'useexisting':True})
28 __table_args__ = (UniqueConstraint('username'), UniqueConstraint('email'), {'useexisting':True})
29 user_id = Column("user_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
29 user_id = Column("user_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
30 username = Column("username", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
30 username = Column("username", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
31 password = Column("password", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
31 password = Column("password", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
32 active = Column("active", BOOLEAN(), nullable=True, unique=None, default=None)
32 active = Column("active", BOOLEAN(), nullable=True, unique=None, default=None)
33 admin = Column("admin", BOOLEAN(), nullable=True, unique=None, default=False)
33 admin = Column("admin", BOOLEAN(), nullable=True, unique=None, default=False)
34 name = Column("name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
34 name = Column("name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
35 lastname = Column("lastname", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
35 lastname = Column("lastname", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
36 email = Column("email", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
36 email = Column("email", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
37 last_login = Column("last_login", DATETIME(timezone=False), nullable=True, unique=None, default=None)
37 last_login = Column("last_login", DATETIME(timezone=False), nullable=True, unique=None, default=None)
38
38
39 user_log = relation('UserLog')
39 user_log = relation('UserLog')
40 user_perms = relation('UserToPerm', primaryjoin="User.user_id==UserToPerm.user_id")
40 user_perms = relation('UserToPerm', primaryjoin="User.user_id==UserToPerm.user_id")
41
41
42 @LazyProperty
42 @LazyProperty
43 def full_contact(self):
43 def full_contact(self):
44 return '%s %s <%s>' % (self.name, self.lastname, self.email)
44 return '%s %s <%s>' % (self.name, self.lastname, self.email)
45
45
46 def __repr__(self):
46 def __repr__(self):
47 return "<User('id:%s:%s')>" % (self.user_id, self.username)
47 return "<User('id:%s:%s')>" % (self.user_id, self.username)
48
48
49 def update_lastlogin(self):
49 def update_lastlogin(self):
50 """Update user lastlogin"""
50 """Update user lastlogin"""
51 import datetime
51 import datetime
52
52
53 try:
53 try:
54 session = Session.object_session(self)
54 session = Session.object_session(self)
55 self.last_login = datetime.datetime.now()
55 self.last_login = datetime.datetime.now()
56 session.add(self)
56 session.add(self)
57 session.commit()
57 session.commit()
58 log.debug('updated user %s lastlogin', self.username)
58 log.debug('updated user %s lastlogin', self.username)
59 except Exception:
59 except Exception:
60 session.rollback()
60 session.rollback()
61
61
62
62
63 class UserLog(Base):
63 class UserLog(Base):
64 __tablename__ = 'user_logs'
64 __tablename__ = 'user_logs'
65 __table_args__ = {'useexisting':True}
65 __table_args__ = {'useexisting':True}
66 user_log_id = Column("user_log_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
66 user_log_id = Column("user_log_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
67 user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None)
67 user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None)
68 repository_id = Column("repository_id", INTEGER(length=None, convert_unicode=False, assert_unicode=None), ForeignKey(u'repositories.repo_id'), nullable=False, unique=None, default=None)
68 repository_id = Column("repository_id", INTEGER(length=None, convert_unicode=False, assert_unicode=None), ForeignKey(u'repositories.repo_id'), nullable=False, unique=None, default=None)
69 repository_name = Column("repository_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
69 repository_name = Column("repository_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
70 user_ip = Column("user_ip", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
70 user_ip = Column("user_ip", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
71 action = Column("action", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
71 action = Column("action", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
72 action_date = Column("action_date", DATETIME(timezone=False), nullable=True, unique=None, default=None)
72 action_date = Column("action_date", DATETIME(timezone=False), nullable=True, unique=None, default=None)
73
73
74 user = relation('User')
74 user = relation('User')
75 repository = relation('Repository')
75 repository = relation('Repository')
76
76
77 class Repository(Base):
77 class Repository(Base):
78 __tablename__ = 'repositories'
78 __tablename__ = 'repositories'
79 __table_args__ = (UniqueConstraint('repo_name'), {'useexisting':True},)
79 __table_args__ = (UniqueConstraint('repo_name'), {'useexisting':True},)
80 repo_id = Column("repo_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
80 repo_id = Column("repo_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
81 repo_name = Column("repo_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None)
81 repo_name = Column("repo_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=True, default=None)
82 repo_type = Column("repo_type", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=False, default=None)
82 repo_type = Column("repo_type", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=False, default=None)
83 user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=False, default=None)
83 user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=False, default=None)
84 private = Column("private", BOOLEAN(), nullable=True, unique=None, default=None)
84 private = Column("private", BOOLEAN(), nullable=True, unique=None, default=None)
85 description = Column("description", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
85 description = Column("description", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
86 fork_id = Column("fork_id", INTEGER(), ForeignKey(u'repositories.repo_id'), nullable=True, unique=False, default=None)
86 fork_id = Column("fork_id", INTEGER(), ForeignKey(u'repositories.repo_id'), nullable=True, unique=False, default=None)
87
87
88 user = relation('User')
88 user = relation('User')
89 fork = relation('Repository', remote_side=repo_id)
89 fork = relation('Repository', remote_side=repo_id)
90 repo_to_perm = relation('RepoToPerm', cascade='all')
90 repo_to_perm = relation('RepoToPerm', cascade='all')
91 stats = relation('Statistics', cascade='all')
91 stats = relation('Statistics', cascade='all')
92
92
93
93
94 def __repr__(self):
94 def __repr__(self):
95 return "<Repository('id:%s:%s')>" % (self.repo_id, self.repo_name)
95 return "<Repository('id:%s:%s')>" % (self.repo_id, self.repo_name)
96
96
97 class Permission(Base):
97 class Permission(Base):
98 __tablename__ = 'permissions'
98 __tablename__ = 'permissions'
99 __table_args__ = {'useexisting':True}
99 __table_args__ = {'useexisting':True}
100 permission_id = Column("permission_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
100 permission_id = Column("permission_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
101 permission_name = Column("permission_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
101 permission_name = Column("permission_name", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
102 permission_longname = Column("permission_longname", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
102 permission_longname = Column("permission_longname", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
103
103
104 def __repr__(self):
104 def __repr__(self):
105 return "<Permission('%s:%s')>" % (self.permission_id, self.permission_name)
105 return "<Permission('%s:%s')>" % (self.permission_id, self.permission_name)
106
106
107 class RepoToPerm(Base):
107 class RepoToPerm(Base):
108 __tablename__ = 'repo_to_perm'
108 __tablename__ = 'repo_to_perm'
109 __table_args__ = (UniqueConstraint('user_id', 'repository_id'), {'useexisting':True})
109 __table_args__ = (UniqueConstraint('user_id', 'repository_id'), {'useexisting':True})
110 repo_to_perm_id = Column("repo_to_perm_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
110 repo_to_perm_id = Column("repo_to_perm_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
111 user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None)
111 user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None)
112 permission_id = Column("permission_id", INTEGER(), ForeignKey(u'permissions.permission_id'), nullable=False, unique=None, default=None)
112 permission_id = Column("permission_id", INTEGER(), ForeignKey(u'permissions.permission_id'), nullable=False, unique=None, default=None)
113 repository_id = Column("repository_id", INTEGER(), ForeignKey(u'repositories.repo_id'), nullable=False, unique=None, default=None)
113 repository_id = Column("repository_id", INTEGER(), ForeignKey(u'repositories.repo_id'), nullable=False, unique=None, default=None)
114
114
115 user = relation('User')
115 user = relation('User')
116 permission = relation('Permission')
116 permission = relation('Permission')
117 repository = relation('Repository')
117 repository = relation('Repository')
118
118
119 class UserToPerm(Base):
119 class UserToPerm(Base):
120 __tablename__ = 'user_to_perm'
120 __tablename__ = 'user_to_perm'
121 __table_args__ = (UniqueConstraint('user_id', 'permission_id'), {'useexisting':True})
121 __table_args__ = (UniqueConstraint('user_id', 'permission_id'), {'useexisting':True})
122 user_to_perm_id = Column("user_to_perm_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
122 user_to_perm_id = Column("user_to_perm_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
123 user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None)
123 user_id = Column("user_id", INTEGER(), ForeignKey(u'users.user_id'), nullable=False, unique=None, default=None)
124 permission_id = Column("permission_id", INTEGER(), ForeignKey(u'permissions.permission_id'), nullable=False, unique=None, default=None)
124 permission_id = Column("permission_id", INTEGER(), ForeignKey(u'permissions.permission_id'), nullable=False, unique=None, default=None)
125
125
126 user = relation('User')
126 user = relation('User')
127 permission = relation('Permission')
127 permission = relation('Permission')
128
128
129 class Statistics(Base):
129 class Statistics(Base):
130 __tablename__ = 'statistics'
130 __tablename__ = 'statistics'
131 __table_args__ = (UniqueConstraint('repository_id'), {'useexisting':True})
131 __table_args__ = (UniqueConstraint('repository_id'), {'useexisting':True})
132 stat_id = Column("stat_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
132 stat_id = Column("stat_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
133 repository_id = Column("repository_id", INTEGER(), ForeignKey(u'repositories.repo_id'), nullable=False, unique=True, default=None)
133 repository_id = Column("repository_id", INTEGER(), ForeignKey(u'repositories.repo_id'), nullable=False, unique=True, default=None)
134 stat_on_revision = Column("stat_on_revision", INTEGER(), nullable=False)
134 stat_on_revision = Column("stat_on_revision", INTEGER(), nullable=False)
135 commit_activity = Column("commit_activity", BLOB(), nullable=False)#JSON data
135 commit_activity = Column("commit_activity", BLOB(), nullable=False)#JSON data
136 commit_activity_combined = Column("commit_activity_combined", BLOB(), nullable=False)#JSON data
136 commit_activity_combined = Column("commit_activity_combined", BLOB(), nullable=False)#JSON data
137 languages = Column("languages", BLOB(), nullable=False)#JSON data
137 languages = Column("languages", BLOB(), nullable=False)#JSON data
138
138
139 repository = relation('Repository', single_parent=True)
139 repository = relation('Repository', single_parent=True)
140
140
141 class CacheInvalidation(Base):
142 __tablename__ = 'cache_invalidation'
143 __table_args__ = {'useexisting':True}
144 cache_id = Column("cache_id", INTEGER(), nullable=False, unique=True, default=None, primary_key=True)
145 cache_key = Column("cache_key", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
146 cache_args = Column("cache_args", TEXT(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
147 cache_active = Column("cache_active", BOOLEAN(), nullable=True, unique=None, default=None)
148
149
General Comments 0
You need to be logged in to leave comments. Login now