feat: postgres => sqlite

This commit is contained in:
Felix Spöttel
2023-02-08 14:09:16 +01:00
parent e995b1f2ff
commit 18921d34c6
16 changed files with 148 additions and 159 deletions

View File

@@ -1,16 +1,15 @@
"""add_job_tables
Revision ID: 426b6bdc3360
Revision ID: dc8582aea0bc
Revises:
Create Date: 2023-01-27 17:55:21.758828
Create Date: 2023-02-08 12:12:00.808816
"""
import sqlalchemy as sa
from alembic import op
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision = "426b6bdc3360"
revision = "dc8582aea0bc"
down_revision = None
branch_labels = None
depends_on = None
@@ -30,23 +29,28 @@ def upgrade() -> None:
sa.Column("meta", sa.JSON(none_as_null=True), nullable=True),
sa.Column(
"type",
sa.Enum("transcript", "translation", "language_detection", name="jobtype"),
sa.Enum(
"transcript",
"translation",
"language_detection",
name="jobtype",
),
nullable=False,
),
sa.Column(
"created_at",
sa.DateTime(),
server_default=sa.text("now()"),
server_default=sa.text("(CURRENT_TIMESTAMP)"),
nullable=False,
),
sa.Column("updated_at", sa.DateTime(), nullable=True),
sa.Column("id", postgresql.UUID(as_uuid=True), nullable=False),
sa.Column("id", sa.VARCHAR(length=36), nullable=False),
sa.PrimaryKeyConstraint("id"),
)
op.create_index(op.f("ix_jobs_id"), "jobs", ["id"], unique=False)
op.create_table(
"artifacts",
sa.Column("job_id", postgresql.UUID(as_uuid=True), nullable=False),
sa.Column("job_id", sa.VARCHAR(length=36), nullable=False),
sa.Column("data", sa.JSON(none_as_null=True), nullable=True),
sa.Column(
"type",
@@ -56,11 +60,11 @@ def upgrade() -> None:
sa.Column(
"created_at",
sa.DateTime(),
server_default=sa.text("now()"),
server_default=sa.text("(CURRENT_TIMESTAMP)"),
nullable=False,
),
sa.Column("updated_at", sa.DateTime(), nullable=True),
sa.Column("id", postgresql.UUID(as_uuid=True), nullable=False),
sa.Column("id", sa.VARCHAR(length=36), nullable=False),
sa.ForeignKeyConstraint(["job_id"], ["jobs.id"], ondelete="CASCADE"),
sa.PrimaryKeyConstraint("id"),
)

View File

@@ -5,7 +5,7 @@ from sqlalchemy.orm import Session, sessionmaker
from app.shared.config import settings
engine = create_engine(settings.DATABASE_URI)
engine = create_engine(settings.DATABASE_URI, connect_args={"check_same_thread": False})
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

View File

@@ -1,7 +1,7 @@
import uuid
from typing import Optional
from sqlalchemy import JSON, Column, DateTime, Enum, ForeignKey, String, func
from sqlalchemy import JSON, VARCHAR, Column, DateTime, Enum, ForeignKey, String, func
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.ext.declarative import declarative_base, declared_attr
from sqlalchemy.orm import Mapped, declarative_mixin # type: ignore
@@ -26,7 +26,7 @@ class WithStandardFields:
@declared_attr
def id(cls) -> Mapped[UUID]:
return Column(
UUID(as_uuid=True), primary_key=True, index=True, default=uuid.uuid4
VARCHAR(36), primary_key=True, index=True, default=lambda: str(uuid.uuid4())
)
@@ -44,7 +44,9 @@ class Artifact(Base, WithStandardFields):
__tablename__ = "artifacts"
job_id = Column(
UUID(as_uuid=True), ForeignKey("jobs.id", ondelete="CASCADE"), nullable=False
VARCHAR(36),
ForeignKey("jobs.id", ondelete="CASCADE"),
nullable=False,
)
data = Column(JSON(none_as_null=True))