From 7f59f20b787a216794da8065301dcff54ef890f2 Mon Sep 17 00:00:00 2001 From: Lunaresk Date: Sun, 20 Feb 2022 16:49:10 +0100 Subject: [PATCH] fix: create server-side defaults --- app/models.py | 15 +++++++------- ...ture.py => 05fce74b56cb_full_structure.py} | 20 +++++++++---------- ..._views.py => 2be4d1ae5493_create_views.py} | 11 +++++----- 3 files changed, 23 insertions(+), 23 deletions(-) rename migrations/versions/{dbf88acb76bc_full_structure.py => 05fce74b56cb_full_structure.py} (86%) rename migrations/versions/{3d5fb9e86939_create_views.py => 2be4d1ae5493_create_views.py} (83%) diff --git a/app/models.py b/app/models.py index 8677fc3..0fc9b95 100644 --- a/app/models.py +++ b/app/models.py @@ -1,4 +1,5 @@ from app import db, login +from datetime import date from flask_login import UserMixin from werkzeug.security import generate_password_hash, check_password_hash @@ -77,15 +78,15 @@ class Bought(db.Model): item = db.Column(db.ForeignKey('item.id'), primary_key=True) date = db.Column(db.Date, primary_key=True) amount = db.Column(db.SmallInteger, nullable=False) - registered = db.Column(db.Boolean, nullable=False, default=False) - paid = db.Column(db.SmallInteger, nullable=False, default=0) + registered = db.Column(db.Boolean, nullable=False, server_default=str(False)) + paid = db.Column(db.SmallInteger, nullable=False, server_default=str(0)) def __repr__(self) -> str: return f"" class PriceChange(db.Model): item = db.Column(db.ForeignKey('item.id'), primary_key=True) - date = db.Column(db.Date, primary_key=True) + date = db.Column(db.Date, primary_key=True, server_default=str(date(2021, 12, 1))) price = db.Column(db.SmallInteger, nullable=False) def __repr__(self) -> str: @@ -93,8 +94,8 @@ class PriceChange(db.Model): class AmountChange(db.Model): item = db.Column(db.ForeignKey('item.id'), primary_key=True) - date = db.Column(db.Date, primary_key=True) - amount = db.Column(db.SmallInteger, nullable=False, default=1) + date = db.Column(db.Date, primary_key=True, server_default=str(date(2021, 12, 1))) + amount = db.Column(db.SmallInteger, nullable=False, server_default=str(1)) def __repr__(self) -> str: return f"" @@ -102,8 +103,8 @@ class AmountChange(db.Model): class Receipt(db.Model): id = db.Column(db.Numeric(precision=22, scale=0), primary_key=True) date = db.Column(db.Date, nullable=False) - registered = db.Column(db.Boolean, nullable=False, default=False) - paid = db.Column(db.SmallInteger, nullable=False, default=0) + registered = db.Column(db.Boolean, nullable=False, server_default=str(False)) + paid = db.Column(db.SmallInteger, nullable=False, server_default=str(0)) def __repr__(self) -> str: return f"" diff --git a/migrations/versions/dbf88acb76bc_full_structure.py b/migrations/versions/05fce74b56cb_full_structure.py similarity index 86% rename from migrations/versions/dbf88acb76bc_full_structure.py rename to migrations/versions/05fce74b56cb_full_structure.py index 713367d..f5aa4dd 100644 --- a/migrations/versions/dbf88acb76bc_full_structure.py +++ b/migrations/versions/05fce74b56cb_full_structure.py @@ -1,8 +1,8 @@ """full structure -Revision ID: dbf88acb76bc +Revision ID: 05fce74b56cb Revises: -Create Date: 2022-02-20 01:58:13.735541 +Create Date: 2022-02-20 16:31:34.589805 """ from alembic import op @@ -10,7 +10,7 @@ import sqlalchemy as sa # revision identifiers, used by Alembic. -revision = 'dbf88acb76bc' +revision = '05fce74b56cb' down_revision = None branch_labels = None depends_on = None @@ -37,8 +37,8 @@ def upgrade(): op.create_table('receipt', sa.Column('id', sa.Numeric(precision=22, scale=0), nullable=False), sa.Column('date', sa.Date(), nullable=False), - sa.Column('registered', sa.Boolean(), nullable=False), - sa.Column('paid', sa.SmallInteger(), nullable=False), + sa.Column('registered', sa.Boolean(), server_default='False', nullable=False), + sa.Column('paid', sa.SmallInteger(), server_default='0', nullable=False), sa.PrimaryKeyConstraint('id') ) op.create_table('user', @@ -69,8 +69,8 @@ def upgrade(): ) op.create_table('amount_change', sa.Column('item', sa.BigInteger(), nullable=False), - sa.Column('date', sa.Date(), nullable=False), - sa.Column('amount', sa.SmallInteger(), nullable=False), + sa.Column('date', sa.Date(), server_default='2021-12-01', nullable=False), + sa.Column('amount', sa.SmallInteger(), server_default='1', nullable=False), sa.ForeignKeyConstraint(['item'], ['item.id'], ), sa.PrimaryKeyConstraint('item', 'date') ) @@ -79,8 +79,8 @@ def upgrade(): sa.Column('item', sa.BigInteger(), nullable=False), sa.Column('date', sa.Date(), nullable=False), sa.Column('amount', sa.SmallInteger(), nullable=False), - sa.Column('registered', sa.Boolean(), nullable=False), - sa.Column('paid', sa.SmallInteger(), nullable=False), + sa.Column('registered', sa.Boolean(), server_default='False', nullable=False), + sa.Column('paid', sa.SmallInteger(), server_default='0', nullable=False), sa.ForeignKeyConstraint(['item'], ['item.id'], ), sa.ForeignKeyConstraint(['token'], ['login_token.token'], ), sa.PrimaryKeyConstraint('token', 'item', 'date') @@ -102,7 +102,7 @@ def upgrade(): ) op.create_table('price_change', sa.Column('item', sa.BigInteger(), nullable=False), - sa.Column('date', sa.Date(), nullable=False), + sa.Column('date', sa.Date(), server_default='2021-12-01', nullable=False), sa.Column('price', sa.SmallInteger(), nullable=False), sa.ForeignKeyConstraint(['item'], ['item.id'], ), sa.PrimaryKeyConstraint('item', 'date') diff --git a/migrations/versions/3d5fb9e86939_create_views.py b/migrations/versions/2be4d1ae5493_create_views.py similarity index 83% rename from migrations/versions/3d5fb9e86939_create_views.py rename to migrations/versions/2be4d1ae5493_create_views.py index c10a3b8..667c867 100644 --- a/migrations/versions/3d5fb9e86939_create_views.py +++ b/migrations/versions/2be4d1ae5493_create_views.py @@ -1,8 +1,8 @@ """create views -Revision ID: 3d5fb9e86939 -Revises: dbf88acb76bc -Create Date: 2022-02-20 01:58:37.444542 +Revision ID: 2be4d1ae5493 +Revises: 05fce74b56cb +Create Date: 2022-02-20 16:33:01.900378 """ from alembic import op @@ -12,10 +12,9 @@ from app import db from app.utils.view_utils import selectable_price_per_amount_view, selectable_bought_with_prices_view from sqlalchemy_utils import create_view - # revision identifiers, used by Alembic. -revision = '3d5fb9e86939' -down_revision = 'dbf88acb76bc' +revision = '2be4d1ae5493' +down_revision = '05fce74b56cb' branch_labels = None depends_on = None