Public Access
feat: feedback-driven recipe discovery (auto-ingest via Spoonacular)
This commit is contained in:
@@ -16,7 +16,8 @@ if config.config_file_name is not None:
|
||||
|
||||
target_metadata = Base.metadata
|
||||
|
||||
config.set_main_option("sqlalchemy.url", settings.DATABASE_URL.replace("postgresql://", "postgresql+psycopg2://"))
|
||||
_driver = "postgresql+pg8000://" if "pg8000" in settings.DATABASE_URL else "postgresql+psycopg2://"
|
||||
config.set_main_option("sqlalchemy.url", settings.DATABASE_URL.replace("postgresql://", _driver).replace("postgresql+psycopg2://", _driver))
|
||||
|
||||
|
||||
def run_migrations_offline() -> None:
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
"""Add feedback_analysis to weekly_run and external fields to recipe
|
||||
|
||||
Revision ID: 0011
|
||||
Revises: 0010
|
||||
Create Date: 2026-05-23
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
revision = "0011"
|
||||
down_revision = "0010"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# Add feedback_analysis JSONB to weekly_run
|
||||
op.add_column(
|
||||
"weekly_run",
|
||||
sa.Column("feedback_analysis", postgresql.JSONB, nullable=True),
|
||||
)
|
||||
|
||||
# Add external source fields to recipe
|
||||
op.add_column(
|
||||
"recipe",
|
||||
sa.Column("external_source", sa.String(50), nullable=True),
|
||||
)
|
||||
op.add_column(
|
||||
"recipe",
|
||||
sa.Column("external_id", sa.String(100), nullable=True),
|
||||
)
|
||||
op.add_column(
|
||||
"recipe",
|
||||
sa.Column("discovery_reason", sa.Text, nullable=True),
|
||||
)
|
||||
|
||||
# Index for deduplication lookups
|
||||
op.create_index(
|
||||
"idx_recipe_external",
|
||||
"recipe",
|
||||
["external_source", "external_id"],
|
||||
unique=True,
|
||||
postgresql_where=sa.text("external_source IS NOT NULL AND external_id IS NOT NULL"),
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
op.drop_index("idx_recipe_external", table_name="recipe")
|
||||
op.drop_column("recipe", "discovery_reason")
|
||||
op.drop_column("recipe", "external_id")
|
||||
op.drop_column("recipe", "external_source")
|
||||
op.drop_column("weekly_run", "feedback_analysis")
|
||||
Reference in New Issue
Block a user