From e2172f4b9cdb1b96fbed2bfff72d5a59251452fd Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Tue, 9 Apr 2024 13:57:43 -0300 Subject: [PATCH] Update column types and bump version (#1653) * Add logger import in script.py.mako * Fix error handling during upgrade in alembic scripts * Bump version to 0.6.14 in pyproject.toml * Update column types in credential and api_key models * Bump version to 0.6.15 in pyproject.toml --- pyproject.toml | 2 +- .../versions/2ac71eb9c3ae_adds_credential_table.py | 2 +- .../langflow/services/database/models/api_key/model.py | 6 +++--- .../services/database/models/credential/model.py | 9 ++++++--- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index edffd9644c36..417d4cdd71e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "langflow" -version = "0.6.14" +version = "0.6.15" description = "A Python package with a built-in web application" authors = ["Logspace "] maintainers = [ diff --git a/src/backend/langflow/alembic/versions/2ac71eb9c3ae_adds_credential_table.py b/src/backend/langflow/alembic/versions/2ac71eb9c3ae_adds_credential_table.py index ce2d2cd76482..367bf81185fd 100644 --- a/src/backend/langflow/alembic/versions/2ac71eb9c3ae_adds_credential_table.py +++ b/src/backend/langflow/alembic/versions/2ac71eb9c3ae_adds_credential_table.py @@ -36,7 +36,7 @@ def upgrade() -> None: ), sa.Column("user_id", sqlmodel.sql.sqltypes.GUID(), nullable=False), sa.Column("id", sqlmodel.sql.sqltypes.GUID(), nullable=False), - sa.Column("created_at", sa.DateTime(), nullable=False), + sa.Column("created_at", sqlmodel.sql.sqltypes.DateTime(), nullable=False), sa.Column("updated_at", sa.DateTime(), nullable=True), sa.PrimaryKeyConstraint("id"), ) diff --git a/src/backend/langflow/services/database/models/api_key/model.py b/src/backend/langflow/services/database/models/api_key/model.py index 226794cbee27..776c4bb7e723 100644 --- a/src/backend/langflow/services/database/models/api_key/model.py +++ b/src/backend/langflow/services/database/models/api_key/model.py @@ -3,7 +3,7 @@ from uuid import UUID, uuid4 from pydantic import validator -from sqlmodel import Field, Relationship, SQLModel +from sqlmodel import Field, Relationship, SQLModel, Field, Column, func, DateTime if TYPE_CHECKING: from langflow.services.database.models.user import User @@ -11,8 +11,8 @@ class ApiKeyBase(SQLModel): name: Optional[str] = Field(index=True, nullable=True, default=None) - created_at: datetime = Field(default_factory=datetime.utcnow) - last_used_at: Optional[datetime] = Field(default=None, nullable=True) + created_at: datetime = Field(sa_column=Column(DateTime(timezone=True), server_default=func.now())) + last_used_at: Optional[datetime] = Field(sa_column=Column(DateTime(timezone=True))) total_uses: int = Field(default=0) is_active: bool = Field(default=True) diff --git a/src/backend/langflow/services/database/models/credential/model.py b/src/backend/langflow/services/database/models/credential/model.py index 95bd4b829baa..1208560ad7b2 100644 --- a/src/backend/langflow/services/database/models/credential/model.py +++ b/src/backend/langflow/services/database/models/credential/model.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Optional from uuid import UUID, uuid4 -from sqlmodel import Field, Relationship, SQLModel +from sqlmodel import Field, Relationship, SQLModel, Column, func, DateTime from langflow.services.database.models.credential.schema import CredentialType @@ -19,8 +19,11 @@ class CredentialBase(SQLModel): class Credential(CredentialBase, table=True): id: Optional[UUID] = Field(default_factory=uuid4, primary_key=True, description="Unique ID for the credential") # name is unique per user - created_at: datetime = Field(default_factory=datetime.utcnow, description="Creation time of the credential") - updated_at: Optional[datetime] = Field(None, description="Last update time of the credential") + created_at: datetime = Field( + sa_column=Column(DateTime(timezone=True), server_default=func.now()), + description="Creation time of the credential", + ) + updated_at: Optional[datetime] = Field(None,sa_column=Column(DateTime(timezone=True)), description="Last update time of the credential") # foreign key to user table user_id: UUID = Field(description="User ID associated with this credential", foreign_key="user.id") user: "User" = Relationship(back_populates="credentials")