mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-12-07 19:05:35 -05:00
72 lines
2.5 KiB
Python
72 lines
2.5 KiB
Python
|
|
"""empty message
|
||
|
|
|
||
|
|
Revision ID: 0341b154f79a
|
||
|
|
Revises: bcfdad6b7355
|
||
|
|
Create Date: 2023-09-01 14:55:42.166766
|
||
|
|
|
||
|
|
"""
|
||
|
|
import sqlalchemy as sa
|
||
|
|
from sqlalchemy import orm, select
|
||
|
|
|
||
|
|
from alembic import op
|
||
|
|
from mealie.db.models.recipe.ingredient import IngredientFoodModel, IngredientUnitModel
|
||
|
|
|
||
|
|
# revision identifiers, used by Alembic.
|
||
|
|
revision = "0341b154f79a"
|
||
|
|
down_revision = "bcfdad6b7355"
|
||
|
|
branch_labels = None
|
||
|
|
depends_on = None
|
||
|
|
|
||
|
|
|
||
|
|
def populate_normalized_fields():
|
||
|
|
bind = op.get_bind()
|
||
|
|
session = orm.Session(bind=bind)
|
||
|
|
|
||
|
|
units = session.execute(select(IngredientUnitModel)).scalars().all()
|
||
|
|
for unit in units:
|
||
|
|
if unit.name is not None:
|
||
|
|
unit.name_normalized = IngredientUnitModel.normalize(unit.name)
|
||
|
|
|
||
|
|
if unit.abbreviation is not None:
|
||
|
|
unit.abbreviation_normalized = IngredientUnitModel.normalize(unit.abbreviation)
|
||
|
|
|
||
|
|
session.add(unit)
|
||
|
|
|
||
|
|
foods = session.execute(select(IngredientFoodModel)).scalars().all()
|
||
|
|
for food in foods:
|
||
|
|
if food.name is not None:
|
||
|
|
food.name_normalized = IngredientFoodModel.normalize(food.name)
|
||
|
|
|
||
|
|
session.add(food)
|
||
|
|
|
||
|
|
session.commit()
|
||
|
|
|
||
|
|
|
||
|
|
def upgrade():
|
||
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
||
|
|
op.add_column("ingredient_foods", sa.Column("name_normalized", sa.String(), nullable=True))
|
||
|
|
op.create_index(op.f("ix_ingredient_foods_name_normalized"), "ingredient_foods", ["name_normalized"], unique=False)
|
||
|
|
op.add_column("ingredient_units", sa.Column("name_normalized", sa.String(), nullable=True))
|
||
|
|
op.add_column("ingredient_units", sa.Column("abbreviation_normalized", sa.String(), nullable=True))
|
||
|
|
op.create_index(
|
||
|
|
op.f("ix_ingredient_units_abbreviation_normalized"),
|
||
|
|
"ingredient_units",
|
||
|
|
["abbreviation_normalized"],
|
||
|
|
unique=False,
|
||
|
|
)
|
||
|
|
op.create_index(op.f("ix_ingredient_units_name_normalized"), "ingredient_units", ["name_normalized"], unique=False)
|
||
|
|
# ### end Alembic commands ###
|
||
|
|
|
||
|
|
populate_normalized_fields()
|
||
|
|
|
||
|
|
|
||
|
|
def downgrade():
|
||
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
||
|
|
op.drop_index(op.f("ix_ingredient_units_name_normalized"), table_name="ingredient_units")
|
||
|
|
op.drop_index(op.f("ix_ingredient_units_abbreviation_normalized"), table_name="ingredient_units")
|
||
|
|
op.drop_column("ingredient_units", "abbreviation_normalized")
|
||
|
|
op.drop_column("ingredient_units", "name_normalized")
|
||
|
|
op.drop_index(op.f("ix_ingredient_foods_name_normalized"), table_name="ingredient_foods")
|
||
|
|
op.drop_column("ingredient_foods", "name_normalized")
|
||
|
|
# ### end Alembic commands ###
|