Files
spoolman2/migrations/versions/2024_03_26_1349-304a32906234_spool_weight_population.py
2024-03-26 13:55:44 -04:00

47 lines
1.5 KiB
Python

"""spool weight population.
Revision ID: 304a32906234
Revises: aafcd7fb0e84
Create Date: 2024-03-26 13:49:26.594399
"""
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision = '304a32906234'
down_revision = 'aafcd7fb0e84'
branch_labels = None
depends_on = None
def upgrade() -> None:
filament = sa.Table('filament',
sa.MetaData(),
sa.Column('id', sa.Integer, primary_key=True),
sa.Column('weight', sa.Float(), nullable=True),
sa.Column('spool_weight', sa.Float(), nullable=True))
spool = sa.Table(
'spool',
sa.MetaData(),
sa.Column('id', sa.Integer, primary_key=True),
sa.Column('filament_id', sa.Integer),
sa.Column('initial_weight', sa.Float(), nullable=False, comment="The initial total weight of the spool (gross weight)."),
sa.Column('empty_weight', sa.Float(), nullable=False, comment="The weight of the empty spool (tare weight).")
)
initial_weight = sa.select((filament.c.weight + filament.c.spool_weight).label("initial_weight")).where(filament.c.id == spool.c.filament_id).scalar_subquery()
empty_weight = sa.select(filament.c.spool_weight).where(filament.c.id == spool.c.filament_id).scalar_subquery()
set_initial_weight = sa.update(spool).values(initial_weight=initial_weight)
op.execute(set_initial_weight)
set_empty_weight = sa.update(spool).values(empty_weight=empty_weight)
op.execute(set_empty_weight)
pass
def downgrade() -> None:
"""Perform the downgrade."""
pass