Skip to content

Commit 297b6a2

Browse files
committed
update models for mysql compatible
1 parent 10402f6 commit 297b6a2

File tree

11 files changed

+1006
-104
lines changed

11 files changed

+1006
-104
lines changed

api/controllers/service_api/wraps.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,18 @@ def validate_and_get_api_token(scope: str | None = None):
262262
ApiToken.type == scope,
263263
)
264264
.values(last_used_at=current_time)
265-
.returning(ApiToken)
265+
# .returning(ApiToken) mysql does not support 'returning'
266266
)
267-
result = session.execute(update_stmt)
267+
session.execute(update_stmt)
268+
select_stmt = (
269+
select(ApiToken)
270+
.where(
271+
ApiToken.token == auth_token,
272+
(ApiToken.last_used_at.is_(None) | (ApiToken.last_used_at < cutoff_time)),
273+
ApiToken.type == scope,
274+
)
275+
)
276+
result = session.execute(select_stmt)
268277
api_token = result.scalar_one_or_none()
269278

270279
if not api_token:

api/migrations-mysql/versions/e0e5dc8aa037_update_more_text_fields_for_mysql_.py

Lines changed: 887 additions & 0 deletions
Large diffs are not rendered by default.

api/models/account.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ class Tenant(Base):
195195

196196
id = db.Column(StringUUID, **uuid_default())
197197
name = db.Column(db.String(255), nullable=False)
198-
encrypt_public_key = db.Column(db.Text)
198+
encrypt_public_key = db.Column(adjusted_text())
199199
plan = db.Column(db.String(255), nullable=False, **varchar_default("basic"))
200200
status = db.Column(db.String(255), nullable=False, **varchar_default("normal"))
201201
custom_config = db.Column(adjusted_text())
@@ -231,7 +231,7 @@ class TenantAccountJoin(Base):
231231
tenant_id = db.Column(StringUUID, nullable=False)
232232
account_id = db.Column(StringUUID, nullable=False)
233233
current = db.Column(db.Boolean, nullable=False, server_default=db.text("false"))
234-
role = db.Column(db.String(16), nullable=False, server_default="normal")
234+
role = db.Column(db.String(16), nullable=False, default="normal")
235235
invited_by = db.Column(StringUUID, nullable=True)
236236
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
237237
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())

api/models/dataset.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class Dataset(Base):
5555
id = db.Column(StringUUID, **uuid_default())
5656
tenant_id = db.Column(StringUUID, nullable=False)
5757
name = db.Column(db.String(255), nullable=False)
58-
description = db.Column(db.Text, nullable=True)
58+
description = db.Column(adjusted_text(), nullable=True)
5959
provider = db.Column(db.String(255), nullable=False, **varchar_default("vendor"))
6060
permission = db.Column(db.String(255), nullable=False, **varchar_default("only_me"))
6161
data_source_type = db.Column(db.String(255))
@@ -275,7 +275,7 @@ class DatasetProcessRule(Base):
275275
id = db.Column(StringUUID, nullable=False, **uuid_default())
276276
dataset_id = db.Column(StringUUID, nullable=False)
277277
mode = db.Column(db.String(255), nullable=False, **varchar_default("automatic"))
278-
rules = db.Column(db.Text, nullable=True)
278+
rules = db.Column(adjusted_text(), nullable=True)
279279
created_by = db.Column(StringUUID, nullable=False)
280280
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
281281

@@ -334,7 +334,7 @@ class Document(Base):
334334
processing_started_at = db.Column(db.DateTime, nullable=True)
335335

336336
# parsing
337-
file_id = db.Column(db.Text, nullable=True)
337+
file_id = db.Column(adjusted_text(), nullable=True)
338338
word_count = db.Column(db.Integer, nullable=True)
339339
parsing_completed_at = db.Column(db.DateTime, nullable=True)
340340

@@ -355,7 +355,7 @@ class Document(Base):
355355
paused_at = db.Column(db.DateTime, nullable=True)
356356

357357
# error
358-
error = db.Column(db.Text, nullable=True)
358+
error = db.Column(adjusted_text(), nullable=True)
359359
stopped_at = db.Column(db.DateTime, nullable=True)
360360

361361
# basic fields
@@ -453,12 +453,13 @@ def segment_count(self):
453453

454454
@property
455455
def hit_count(self):
456-
return (
456+
result = (
457457
db.session.query(DocumentSegment)
458458
.with_entities(func.coalesce(func.sum(DocumentSegment.hit_count)))
459459
.filter(DocumentSegment.document_id == self.id)
460460
.scalar()
461461
)
462+
return float(result) if result is not None else 0.0
462463

463464
@property
464465
def uploader(self):
@@ -664,8 +665,8 @@ class DocumentSegment(Base):
664665
dataset_id = db.Column(StringUUID, nullable=False)
665666
document_id = db.Column(StringUUID, nullable=False)
666667
position: Mapped[int]
667-
content = db.Column(db.Text, nullable=False)
668-
answer = db.Column(db.Text, nullable=True)
668+
content = db.Column(adjusted_text(), nullable=False)
669+
answer = db.Column(adjusted_text(), nullable=True)
669670
word_count = db.Column(db.Integer, nullable=False)
670671
tokens = db.Column(db.Integer, nullable=False)
671672

@@ -686,7 +687,7 @@ class DocumentSegment(Base):
686687
updated_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
687688
indexing_at = db.Column(db.DateTime, nullable=True)
688689
completed_at = db.Column(db.DateTime, nullable=True)
689-
error = db.Column(db.Text, nullable=True)
690+
error = db.Column(adjusted_text(), nullable=True)
690691
stopped_at = db.Column(db.DateTime, nullable=True)
691692

692693
@property
@@ -813,7 +814,7 @@ class ChildChunk(Base):
813814
document_id = db.Column(StringUUID, nullable=False)
814815
segment_id = db.Column(StringUUID, nullable=False)
815816
position = db.Column(db.Integer, nullable=False)
816-
content = db.Column(db.Text, nullable=False)
817+
content = db.Column(adjusted_text(), nullable=False)
817818
word_count = db.Column(db.Integer, nullable=False)
818819
# indexing fields
819820
index_node_id = db.Column(db.String(255), nullable=True)
@@ -825,7 +826,7 @@ class ChildChunk(Base):
825826
updated_at = db.Column(db.DateTime, nullable=False, server_default=db.text("CURRENT_TIMESTAMP(0)"))
826827
indexing_at = db.Column(db.DateTime, nullable=True)
827828
completed_at = db.Column(db.DateTime, nullable=True)
828-
error = db.Column(db.Text, nullable=True)
829+
error = db.Column(adjusted_text(), nullable=True)
829830

830831
@property
831832
def dataset(self):
@@ -850,7 +851,7 @@ class AppDatasetJoin(Base):
850851
id = db.Column(StringUUID, primary_key=True, nullable=False, **uuid_default())
851852
app_id = db.Column(StringUUID, nullable=False)
852853
dataset_id = db.Column(StringUUID, nullable=False)
853-
created_at = db.Column(db.DateTime, nullable=False, server_default=db.func.current_timestamp())
854+
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
854855

855856
@property
856857
def app(self):
@@ -866,12 +867,12 @@ class DatasetQuery(Base):
866867

867868
id = db.Column(StringUUID, primary_key=True, nullable=False, **uuid_default())
868869
dataset_id = db.Column(StringUUID, nullable=False)
869-
content = db.Column(db.Text, nullable=False)
870+
content = db.Column(adjusted_text(), nullable=False)
870871
source = db.Column(db.String(255), nullable=False)
871872
source_app_id = db.Column(StringUUID, nullable=True)
872873
created_by_role = db.Column(no_length_string(), nullable=False)
873874
created_by = db.Column(StringUUID, nullable=False)
874-
created_at = db.Column(db.DateTime, nullable=False, server_default=db.func.current_timestamp())
875+
created_at = db.Column(db.DateTime, nullable=False, server_default=func.current_timestamp())
875876

876877

877878
class DatasetKeywordTable(Base):

0 commit comments

Comments
 (0)