diff --git a/api/models/account.py b/api/models/account.py index 6700fc86c12..ed7bc2258b2 100644 --- a/api/models/account.py +++ b/api/models/account.py @@ -303,7 +303,7 @@ class TenantAccountJoin(TypeBase): ) tenant_id: Mapped[str] = mapped_column(StringUUID) account_id: Mapped[str] = mapped_column(StringUUID) - current: Mapped[bool] = mapped_column(sa.Boolean, server_default=sa.text("false"), default=False) + current: Mapped[bool] = mapped_column(sa.Boolean, server_default=sa.false(), default=False) role: Mapped[TenantAccountRole] = mapped_column( EnumText(TenantAccountRole, length=16), server_default="normal", default=TenantAccountRole.NORMAL ) diff --git a/api/models/agent.py b/api/models/agent.py index d981194c714..eb1fafae98a 100644 --- a/api/models/agent.py +++ b/api/models/agent.py @@ -189,13 +189,13 @@ class Agent(DefaultFieldsMixin, Base): workflow_node_id: Mapped[str | None] = mapped_column(String(255), nullable=True) active_config_snapshot_id: Mapped[str | None] = mapped_column(StringUUID, nullable=True) active_config_has_model: Mapped[bool] = mapped_column( - sa.Boolean, nullable=False, default=False, server_default=sa.text("false") + sa.Boolean, nullable=False, default=False, server_default=sa.false() ) active_config_is_published: Mapped[bool] = mapped_column( sa.Boolean, nullable=False, default=False, - server_default=sa.text("false"), + server_default=sa.false(), comment=( "Whether the normal shared Agent draft has been published into the active config snapshot. " "User-scoped debug drafts do not affect this flag." diff --git a/api/models/comment.py b/api/models/comment.py index 222284f42b3..565169126f7 100644 --- a/api/models/comment.py +++ b/api/models/comment.py @@ -64,7 +64,7 @@ class WorkflowComment(TypeBase): resolved_at: Mapped[datetime | None] = mapped_column(sa.DateTime, default=None) resolved_by: Mapped[str | None] = mapped_column(StringUUID, default=None) - resolved: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false"), default=False) + resolved: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) # Relationships replies: Mapped[list[WorkflowCommentReply]] = relationship( lambda: WorkflowCommentReply, back_populates="comment", cascade="all, delete-orphan", init=False diff --git a/api/models/credential_permission.py b/api/models/credential_permission.py index effa78635b1..969a2e32d0d 100644 --- a/api/models/credential_permission.py +++ b/api/models/credential_permission.py @@ -45,9 +45,7 @@ class CredentialPermission(TypeBase): credential_type: Mapped[str] = mapped_column(String(40), nullable=False) account_id: Mapped[str] = mapped_column(StringUUID, nullable=False) tenant_id: Mapped[str] = mapped_column(StringUUID, nullable=False) - has_permission: Mapped[bool] = mapped_column( - sa.Boolean, nullable=False, server_default=sa.text("true"), default=True - ) + has_permission: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.true(), default=True) created_at: Mapped[datetime] = mapped_column( DateTime, nullable=False, server_default=func.current_timestamp(), init=False ) diff --git a/api/models/dataset.py b/api/models/dataset.py index 5e45d4b9a68..327c9503420 100644 --- a/api/models/dataset.py +++ b/api/models/dataset.py @@ -202,15 +202,15 @@ class Dataset(Base): collection_binding_id = mapped_column(StringUUID, nullable=True) retrieval_model = mapped_column(AdjustedJSON, nullable=True) summary_index_setting = mapped_column(AdjustedJSON, nullable=True) - built_in_field_enabled = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false")) + built_in_field_enabled = mapped_column(sa.Boolean, nullable=False, server_default=sa.false()) icon_info = mapped_column(AdjustedJSON, nullable=True) runtime_mode = mapped_column( EnumText(DatasetRuntimeMode, length=255), nullable=True, server_default=sa.text("'general'") ) pipeline_id = mapped_column(StringUUID, nullable=True) chunk_structure = mapped_column(sa.String(255), nullable=True) - enable_api = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("true")) - is_multimodal = mapped_column(sa.Boolean, default=False, nullable=False, server_default=sa.text("false")) + enable_api = mapped_column(sa.Boolean, nullable=False, server_default=sa.true()) + is_multimodal = mapped_column(sa.Boolean, default=False, nullable=False, server_default=sa.false()) def get_total_documents(self, *, session: Session) -> int: return self.get_document_count(session=session) @@ -560,7 +560,7 @@ class Document(Base): completed_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True) # pause - is_paused: Mapped[bool | None] = mapped_column(sa.Boolean, nullable=True, server_default=sa.text("false")) + is_paused: Mapped[bool | None] = mapped_column(sa.Boolean, nullable=True, server_default=sa.false()) paused_by = mapped_column(StringUUID, nullable=True) paused_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True) @@ -572,10 +572,10 @@ class Document(Base): indexing_status = mapped_column( EnumText(IndexingStatus, length=255), nullable=False, server_default=sa.text("'waiting'") ) - enabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("true")) + enabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.true()) disabled_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True) disabled_by = mapped_column(StringUUID, nullable=True) - archived: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false")) + archived: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false()) archived_reason = mapped_column(String(255), nullable=True) archived_by = mapped_column(StringUUID, nullable=True) archived_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True) @@ -588,7 +588,7 @@ class Document(Base): EnumText(IndexStructureType, length=255), nullable=False, server_default=sa.text("'text_model'") ) doc_language = mapped_column(String(255), nullable=True) - need_summary: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false")) + need_summary: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false()) DATA_SOURCES = ["upload_file", "notion_import", "website_crawl"] @@ -901,7 +901,7 @@ class DocumentSegment(TypeBase): # indexing fields index_node_id: Mapped[str | None] = mapped_column(String(255), nullable=True, default=None) index_node_hash: Mapped[str | None] = mapped_column(String(255), nullable=True, default=None) - enabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("true"), default=True) + enabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.true(), default=True) answer: Mapped[str | None] = mapped_column(LongText, nullable=True, default=None) keywords: Mapped[Any] = mapped_column(sa.JSON, nullable=True, default=None) disabled_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True, default=None) @@ -1362,7 +1362,7 @@ class TidbAuthBinding(TypeBase): tenant_id: Mapped[str | None] = mapped_column(StringUUID, nullable=True) cluster_id: Mapped[str] = mapped_column(String(255), nullable=False) cluster_name: Mapped[str] = mapped_column(String(255), nullable=False) - active: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false")) + active: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false()) status: Mapped[TidbAuthBindingStatus] = mapped_column( EnumText(TidbAuthBindingStatus, length=255), nullable=False, server_default=sa.text("'CREATING'") ) @@ -1413,9 +1413,7 @@ class DatasetPermission(TypeBase): dataset_id: Mapped[str] = mapped_column(StringUUID, nullable=False) account_id: Mapped[str] = mapped_column(StringUUID, nullable=False) tenant_id: Mapped[str] = mapped_column(StringUUID, nullable=False) - has_permission: Mapped[bool] = mapped_column( - sa.Boolean, nullable=False, server_default=sa.text("true"), default=True - ) + has_permission: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.true(), default=True) created_at: Mapped[datetime] = mapped_column( DateTime, nullable=False, server_default=func.current_timestamp(), init=False ) @@ -1531,7 +1529,7 @@ class DatasetAutoDisableLog(TypeBase): tenant_id: Mapped[str] = mapped_column(StringUUID, nullable=False) dataset_id: Mapped[str] = mapped_column(StringUUID, nullable=False) document_id: Mapped[str] = mapped_column(StringUUID, nullable=False) - notified: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false"), default=False) + notified: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) created_at: Mapped[datetime] = mapped_column( DateTime, nullable=False, server_default=sa.func.current_timestamp(), init=False ) @@ -1687,10 +1685,8 @@ class Pipeline(TypeBase): name: Mapped[str] = mapped_column(sa.String(255), nullable=False) description: Mapped[str] = mapped_column(LongText, nullable=False, default=sa.text("''")) workflow_id: Mapped[str | None] = mapped_column(StringUUID, nullable=True, default=None) - is_public: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false"), default=False) - is_published: Mapped[bool] = mapped_column( - sa.Boolean, nullable=False, server_default=sa.text("false"), default=False - ) + is_public: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) + is_published: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) created_by: Mapped[str | None] = mapped_column(StringUUID, nullable=True, default=None) created_at: Mapped[datetime] = mapped_column( sa.DateTime, nullable=False, server_default=func.current_timestamp(), init=False @@ -1814,7 +1810,7 @@ class DocumentSegmentSummary(TypeBase): default=SummaryStatus.GENERATING, ) error: Mapped[str | None] = mapped_column(LongText, nullable=True, default=None) - enabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("true"), default=True) + enabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.true(), default=True) disabled_at: Mapped[datetime | None] = mapped_column(DateTime, nullable=True, default=None) disabled_by: Mapped[str | None] = mapped_column(StringUUID, nullable=True, default=None) created_at: Mapped[datetime] = mapped_column( diff --git a/api/models/model.py b/api/models/model.py index dde53291b81..bc33dbadfb6 100644 --- a/api/models/model.py +++ b/api/models/model.py @@ -434,9 +434,9 @@ class App(Base): enable_api: Mapped[bool] = mapped_column(sa.Boolean) api_rpm: Mapped[int] = mapped_column(sa.Integer, server_default=sa.text("0")) api_rph: Mapped[int] = mapped_column(sa.Integer, server_default=sa.text("0")) - is_demo: Mapped[bool] = mapped_column(sa.Boolean, server_default=sa.text("false")) - is_public: Mapped[bool] = mapped_column(sa.Boolean, server_default=sa.text("false")) - is_universal: Mapped[bool] = mapped_column(sa.Boolean, server_default=sa.text("false")) + is_demo: Mapped[bool] = mapped_column(sa.Boolean, server_default=sa.false()) + is_public: Mapped[bool] = mapped_column(sa.Boolean, server_default=sa.false()) + is_universal: Mapped[bool] = mapped_column(sa.Boolean, server_default=sa.false()) tracing = mapped_column(LongText, nullable=True) max_active_requests: Mapped[int | None] created_by = mapped_column(StringUUID, nullable=True) @@ -446,7 +446,7 @@ class App(Base): updated_at: Mapped[datetime] = mapped_column( sa.DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp() ) - use_icon_as_answer_icon: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false")) + use_icon_as_answer_icon: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false()) @property def desc_or_prompt(self) -> str: @@ -988,12 +988,8 @@ class RecommendedApp(TypeBase): custom_disclaimer: Mapped[str] = mapped_column(LongText, default="") position: Mapped[int] = mapped_column(sa.Integer, nullable=False, default=0) is_listed: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, default=True) - is_learn_dify: Mapped[bool] = mapped_column( - sa.Boolean, nullable=False, server_default=sa.text("false"), default=False - ) - is_cloud_only: Mapped[bool] = mapped_column( - sa.Boolean, nullable=False, server_default=sa.text("false"), default=False - ) + is_learn_dify: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) + is_cloud_only: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) install_count: Mapped[int] = mapped_column(sa.Integer, nullable=False, default=0) language: Mapped[str] = mapped_column( String(255), @@ -1033,7 +1029,7 @@ class InstalledApp(TypeBase): app_id: Mapped[str] = mapped_column(StringUUID, nullable=False) app_owner_tenant_id: Mapped[str] = mapped_column(StringUUID, nullable=False) position: Mapped[int] = mapped_column(sa.Integer, nullable=False, default=0) - is_pinned: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false"), default=False) + is_pinned: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) last_used_at: Mapped[datetime | None] = mapped_column(sa.DateTime, nullable=True, default=None) created_at: Mapped[datetime] = mapped_column( sa.DateTime, nullable=False, server_default=func.current_timestamp(), init=False @@ -1238,7 +1234,7 @@ class Conversation(Base): lambda: MessageAnnotation, backref="conversation", lazy="select", passive_deletes="all" ) - is_deleted: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false")) + is_deleted: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false()) @property def inputs(self) -> dict[str, Any]: @@ -1597,7 +1593,7 @@ class Message(Base): updated_at: Mapped[datetime] = mapped_column( sa.DateTime, nullable=False, server_default=func.current_timestamp(), onupdate=func.current_timestamp() ) - agent_based: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false")) + agent_based: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false()) workflow_run_id: Mapped[str | None] = mapped_column(StringUUID) app_mode: Mapped[AppMode | None] = mapped_column(EnumText(AppMode, length=255), nullable=True) @@ -2248,9 +2244,7 @@ class EndUser(Base, UserMixin): type: Mapped[EndUserType] = mapped_column(EnumText(EndUserType, length=255), nullable=False) external_user_id = mapped_column(String(255), nullable=True) name = mapped_column(String(255)) - _is_anonymous: Mapped[bool] = mapped_column( - "is_anonymous", sa.Boolean, nullable=False, server_default=sa.text("true") - ) + _is_anonymous: Mapped[bool] = mapped_column("is_anonymous", sa.Boolean, nullable=False, server_default=sa.true()) @property @override @@ -2365,17 +2359,15 @@ class Site(TypeBase): customize_domain: Mapped[str | None] = mapped_column(String(255), nullable=True, default=None) chat_color_theme: Mapped[str | None] = mapped_column(String(255), nullable=True, default=None) - prompt_public: Mapped[bool] = mapped_column( - sa.Boolean, nullable=False, server_default=sa.text("false"), default=False - ) + prompt_public: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) chat_color_theme_inverted: Mapped[bool] = mapped_column( - sa.Boolean, nullable=False, server_default=sa.text("false"), default=False + sa.Boolean, nullable=False, server_default=sa.false(), default=False ) show_workflow_steps: Mapped[bool] = mapped_column( - sa.Boolean, nullable=False, server_default=sa.text("true"), default=True + sa.Boolean, nullable=False, server_default=sa.true(), default=True ) use_icon_as_answer_icon: Mapped[bool] = mapped_column( - sa.Boolean, nullable=False, server_default=sa.text("false"), default=False + sa.Boolean, nullable=False, server_default=sa.false(), default=False ) custom_disclaimer: Mapped[str] = mapped_column(LongText, nullable=False, default="") status: Mapped[AppStatus] = mapped_column( @@ -2510,7 +2502,7 @@ class UploadFile(TypeBase): # 3. Avoid relying on these fields for logic, as their values may not always be accurate. # # `used` may indicate whether the file has been utilized by another service. - used: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false")) + used: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false()) # The `created_by_role` field indicates whether the file was created by an `Account` or an `EndUser`. # Its value is derived from the `CreatorUserRole` enumeration. @@ -2821,7 +2813,7 @@ class TraceAppConfig(TypeBase): onupdate=func.current_timestamp(), init=False, ) - is_active: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("true"), default=True) + is_active: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.true(), default=True) @property def tracing_config_dict(self) -> dict[str, Any]: diff --git a/api/models/oauth.py b/api/models/oauth.py index 84be7eb37ce..b3effe1f5e2 100644 --- a/api/models/oauth.py +++ b/api/models/oauth.py @@ -45,7 +45,7 @@ class DatasourceProvider(TypeBase): encrypted_credentials: Mapped[dict[str, Any]] = mapped_column(AdjustedJSON, nullable=False) user_id: Mapped[str | None] = mapped_column(StringUUID, nullable=True, default=None) avatar_url: Mapped[str] = mapped_column(LongText, nullable=True, default="default") - is_default: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false"), default=False) + is_default: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) expires_at: Mapped[int] = mapped_column(sa.Integer, nullable=False, server_default="-1", default=-1) visibility: Mapped[PermissionEnum] = mapped_column( EnumText(PermissionEnum, length=40), diff --git a/api/models/onboarding.py b/api/models/onboarding.py index 3495d91274e..e8d06070fc9 100644 --- a/api/models/onboarding.py +++ b/api/models/onboarding.py @@ -32,7 +32,7 @@ class AccountStepByStepTourState(TypeBase): ) account_id: Mapped[str] = mapped_column(StringUUID, nullable=False) first_workspace_id: Mapped[str | None] = mapped_column(StringUUID, nullable=True, default=None) - skipped: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false"), default=False) + skipped: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) completed_task_ids: Mapped[list[str]] = mapped_column(AdjustedJSON, nullable=False, default_factory=list) manually_enabled_workspace_ids: Mapped[list[str]] = mapped_column( AdjustedJSON, diff --git a/api/models/snippet.py b/api/models/snippet.py index b6fbc4ed824..4a9320e51f6 100644 --- a/api/models/snippet.py +++ b/api/models/snippet.py @@ -47,7 +47,7 @@ class CustomizedSnippet(Base): workflow_id: Mapped[str | None] = mapped_column(StringUUID, nullable=True) # State flags - is_published: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false")) + is_published: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false()) version: Mapped[int] = mapped_column(sa.Integer, nullable=False, server_default=sa.text("1")) use_count: Mapped[int] = mapped_column(sa.Integer, nullable=False, server_default=sa.text("0")) diff --git a/api/models/source.py b/api/models/source.py index 8fce7df205d..c8cc0eb6508 100644 --- a/api/models/source.py +++ b/api/models/source.py @@ -36,7 +36,7 @@ class DataSourceOauthBinding(TypeBase): onupdate=func.current_timestamp(), init=False, ) - disabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=True, server_default=sa.text("false"), default=False) + disabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=True, server_default=sa.false(), default=False) class DataSourceApiKeyAuthBindingDict(TypedDict): @@ -75,7 +75,7 @@ class DataSourceApiKeyAuthBinding(TypeBase): onupdate=func.current_timestamp(), init=False, ) - disabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=True, server_default=sa.text("false"), default=False) + disabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=True, server_default=sa.false(), default=False) def to_dict(self) -> DataSourceApiKeyAuthBindingDict: result: DataSourceApiKeyAuthBindingDict = { diff --git a/api/models/tools.py b/api/models/tools.py index c8468925aab..67b4929da1b 100644 --- a/api/models/tools.py +++ b/api/models/tools.py @@ -62,7 +62,7 @@ class ToolOAuthTenantClient(TypeBase): tenant_id: Mapped[str] = mapped_column(StringUUID, nullable=False) plugin_id: Mapped[str] = mapped_column(String(255), nullable=False) provider: Mapped[str] = mapped_column(String(255), nullable=False) - enabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("true"), init=False) + enabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.true(), init=False) # oauth params of the tool provider encrypted_oauth_params: Mapped[str] = mapped_column(LongText, nullable=False, init=False) @@ -109,7 +109,7 @@ class BuiltinToolProvider(TypeBase): onupdate=func.current_timestamp(), init=False, ) - is_default: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("false"), default=False) + is_default: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.false(), default=False) # credential type, e.g., "api-key", "oauth2" credential_type: Mapped[CredentialType] = mapped_column( EnumText(CredentialType, length=32), diff --git a/api/models/trigger.py b/api/models/trigger.py index fe61a479495..4da9314d7df 100644 --- a/api/models/trigger.py +++ b/api/models/trigger.py @@ -199,7 +199,7 @@ class TriggerOAuthTenantClient(TypeBase): tenant_id: Mapped[str] = mapped_column(StringUUID, nullable=False) plugin_id: Mapped[str] = mapped_column(String(255), nullable=False) provider: Mapped[str] = mapped_column(String(255), nullable=False) - enabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.text("true"), default=True) + enabled: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, server_default=sa.true(), default=True) # oauth params of the trigger provider encrypted_oauth_params: Mapped[str] = mapped_column(LongText, nullable=False, default="{}") created_at: Mapped[datetime] = mapped_column(