Due to update to sqlalchemy, fixed schema nullability
This commit is contained in:
parent
5c7985e392
commit
802eded568
|
@ -2,7 +2,7 @@ import logging
|
|||
|
||||
from alembic import context
|
||||
from barker.core.config import settings
|
||||
from barker.db.base import User
|
||||
from barker.db.base import reg
|
||||
from sqlalchemy import create_engine, pool
|
||||
|
||||
|
||||
|
@ -14,7 +14,7 @@ logging.getLogger("alembic").setLevel(settings.ALEMBIC_LOG_LEVEL)
|
|||
# This line sets up loggers basically.
|
||||
|
||||
|
||||
target_metadata = User.metadata
|
||||
target_metadata = reg.metadata
|
||||
|
||||
# other values from the config, defined by the needs of env.py,
|
||||
# can be acquired:
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
"""fix nullability
|
||||
|
||||
Revision ID: f135019a4ebf
|
||||
Revises: 0e326930b8a4
|
||||
Create Date: 2023-02-22 03:41:23.537388
|
||||
|
||||
"""
|
||||
import sqlalchemy as sa
|
||||
|
||||
from alembic import op
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = "f135019a4ebf"
|
||||
down_revision = "0e326930b8a4"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.alter_column("inventories", "quantity", existing_type=sa.NUMERIC(precision=15, scale=2), nullable=False)
|
||||
op.alter_column("inventories", "price", existing_type=sa.NUMERIC(precision=15, scale=2), nullable=False)
|
||||
op.alter_column("inventories", "tax_rate", existing_type=sa.NUMERIC(precision=15, scale=5), nullable=False)
|
||||
op.alter_column("inventories", "discount", existing_type=sa.NUMERIC(precision=15, scale=5), nullable=False)
|
||||
op.alter_column("permissions", "name", existing_type=sa.VARCHAR(length=255), nullable=False)
|
||||
op.alter_column("roles", "name", existing_type=sa.VARCHAR(length=255), nullable=False)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.alter_column("roles", "name", existing_type=sa.VARCHAR(length=255), nullable=True)
|
||||
op.alter_column("permissions", "name", existing_type=sa.VARCHAR(length=255), nullable=True)
|
||||
op.alter_column("inventories", "discount", existing_type=sa.NUMERIC(precision=15, scale=5), nullable=True)
|
||||
op.alter_column("inventories", "tax_rate", existing_type=sa.NUMERIC(precision=15, scale=5), nullable=True)
|
||||
op.alter_column("inventories", "price", existing_type=sa.NUMERIC(precision=15, scale=2), nullable=True)
|
||||
op.alter_column("inventories", "quantity", existing_type=sa.NUMERIC(precision=15, scale=2), nullable=True)
|
||||
# ### end Alembic commands ###
|
|
@ -1,217 +0,0 @@
|
|||
import uuid
|
||||
|
||||
from barker.core.config import settings # noqa: F401
|
||||
from barker.db.base import reg # noqa: F401
|
||||
from barker.models.customer import Customer
|
||||
from barker.models.db_setting import DbSetting
|
||||
from barker.models.modifier_category import ModifierCategory
|
||||
from barker.models.permission import Permission
|
||||
from barker.models.role import Role
|
||||
from barker.models.section import Section
|
||||
from barker.models.settle_option import SettleOption
|
||||
from barker.models.user import User
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
|
||||
# make sure all SQL Alchemy models are imported (app.db.base) before initializing DB
|
||||
# otherwise, SQL Alchemy might fail to initialize relationships properly
|
||||
# for more details: https://github.com/tiangolo/full-stack-fastapi-postgresql/issues/28
|
||||
|
||||
|
||||
def init_db(db: Session) -> None:
|
||||
# Tables should be created with Alembic migrations
|
||||
# But if you don't want to use migrations, create
|
||||
# the tables un-commenting the next line
|
||||
# Base.metadata.create_all(bind=engine)
|
||||
|
||||
prod = True
|
||||
if prod:
|
||||
db.add(Permission("Guest Book", uuid.UUID("7669dfc9-cc75-4e48-b267-145c8832a83c")))
|
||||
db.add(Permission("Printers", uuid.UUID("5b66c6f6-003a-4ef8-ba28-49b8ff1ac33c")))
|
||||
db.add(Permission("Sections", uuid.UUID("c973f32c-a37b-496a-8dc5-60d2e4c39e97")))
|
||||
db.add(
|
||||
Permission(
|
||||
"Section Printers",
|
||||
uuid.UUID("7a04ba63-5d08-4078-9051-a6d91cce3e48"),
|
||||
)
|
||||
)
|
||||
else:
|
||||
add_permissions(db)
|
||||
|
||||
main_section = Section("Main", uuid.UUID("3f13f6e7-dc76-4fca-8fdb-b2bbf29b35df"))
|
||||
db.add(main_section)
|
||||
mcs = [
|
||||
ModifierCategory(
|
||||
"Old Modifiers",
|
||||
0,
|
||||
0,
|
||||
True,
|
||||
0,
|
||||
uuid.UUID("e046ad33-dc65-4c78-8833-c3d3538d44c0"),
|
||||
),
|
||||
ModifierCategory(
|
||||
"Bar Instructions",
|
||||
0,
|
||||
0,
|
||||
True,
|
||||
0,
|
||||
uuid.UUID("b572f401-3c2f-48b9-8973-ada5a6e4d3a6"),
|
||||
),
|
||||
ModifierCategory(
|
||||
"Delivery",
|
||||
0,
|
||||
0,
|
||||
True,
|
||||
0,
|
||||
uuid.UUID("caa72832-5034-405e-8442-68a8cc12ace9"),
|
||||
),
|
||||
ModifierCategory(
|
||||
"Kitchen Instructions",
|
||||
0,
|
||||
0,
|
||||
True,
|
||||
0,
|
||||
uuid.UUID("d6a0595f-e209-42e4-bb12-b7499f9a9c4d"),
|
||||
),
|
||||
ModifierCategory(
|
||||
"Mixers",
|
||||
0,
|
||||
0,
|
||||
True,
|
||||
0,
|
||||
uuid.UUID("60ca9122-adc5-463b-ad5f-33a68df8c3ae"),
|
||||
),
|
||||
ModifierCategory(
|
||||
"Pasta Sauce",
|
||||
0,
|
||||
0,
|
||||
True,
|
||||
0,
|
||||
uuid.UUID("ef5b1a0b-5eb1-45ff-bd82-3209c8b888df"),
|
||||
),
|
||||
]
|
||||
for item in mcs:
|
||||
db.add(item)
|
||||
|
||||
options = [
|
||||
SettleOption("Unsettled", False, 1, True, 1),
|
||||
SettleOption("Cash", True, 2, False, 2),
|
||||
SettleOption("Credit Card", True, 2, True, 3),
|
||||
SettleOption("No Charge", True, 3, True, 4),
|
||||
SettleOption("Bill To Company", True, 2, True, 5),
|
||||
SettleOption("Tip", True, 2, True, 6),
|
||||
SettleOption("Round Off", False, 1, False, 7),
|
||||
SettleOption("Amount", False, 1, False, 8),
|
||||
SettleOption("Void", True, 1, True, 9),
|
||||
SettleOption("Staff", True, 4, True, 10),
|
||||
]
|
||||
for option in options:
|
||||
db.add(option)
|
||||
db.add(Customer("Cash", "", "", uuid.UUID("2c716f4b-0736-429a-ad51-610d7c47cb5e")))
|
||||
db.add(
|
||||
DbSetting(
|
||||
uuid.UUID("fb738ba2-a3c9-40ed-891c-b930e6454974"),
|
||||
"Header",
|
||||
{
|
||||
"Text": """ Hops n Grains
|
||||
The Microbrewery
|
||||
SCO 358, Sector 9, Panchkula
|
||||
A Unit of Peitho Foods Pvt. Ltd.
|
||||
CIN: U15139CH2010PTC032202
|
||||
(Reg Add: Plot No. 907, Indl Area II, Chd)
|
||||
TIN: 06592507323
|
||||
Service Tax: AAFCP5097GSD001
|
||||
"""
|
||||
},
|
||||
)
|
||||
)
|
||||
db.add(
|
||||
DbSetting(
|
||||
uuid.UUID("f7799871-d16e-4c4d-9b57-2299a5839acb"),
|
||||
"Footer",
|
||||
{"Text": "Call: 0172-4026666, 8054923853, 8054923856"},
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def add_permissions(db: Session):
|
||||
permissions = [
|
||||
Permission("Audit", uuid.UUID("f30fd1fb-df09-46f5-8c5d-181fd46f38de")),
|
||||
Permission("Beer Consumption", uuid.UUID("efbb8f31-9631-4491-92f4-17cc98e6a0c0")),
|
||||
Permission("Bill Details", uuid.UUID("612bb529-b50d-4653-a1c0-ebb725c7d728")),
|
||||
Permission("Cashier Checkout", uuid.UUID("a86f8bcf-66f4-4c44-89e1-b714488b8331")),
|
||||
Permission("Change Rate", uuid.UUID("10c63aae-0e48-4e54-b3b8-dd8a80b88fbf")),
|
||||
Permission("Customers", uuid.UUID("e5fef133-cdbe-441f-bb54-1f0db0c5db79")),
|
||||
Permission("Discount", uuid.UUID("1f66f131-0105-4466-8f8e-21e0ccc2ac27")),
|
||||
Permission("Discount Report", uuid.UUID("0d8ba1d5-6731-417c-ab0e-be03cfdc96db")),
|
||||
Permission("Edit Printed Bill", uuid.UUID("4ff6cb0f-93cb-4760-8219-4de280eaa957")),
|
||||
Permission(
|
||||
"Edit Printed Product",
|
||||
uuid.UUID("959713be-d753-4e14-8ecd-e27f33587499"),
|
||||
),
|
||||
Permission("Guest Book", uuid.UUID("7669dfc9-cc75-4e48-b267-145c8832a83c")),
|
||||
Permission("Machines", uuid.UUID("f12b573f-edcb-490d-91c3-fa76f6502ffd")),
|
||||
Permission("Merge Kots", uuid.UUID("bed774e9-4857-43b0-a4af-40230c9eb5db")),
|
||||
Permission("Merge Tables", uuid.UUID("dfc493fb-ac14-4602-8596-f93f47b617de")),
|
||||
Permission("Modifiers", uuid.UUID("9dc82529-1e86-41b4-a152-eaea9f775fea")),
|
||||
Permission(
|
||||
"Move Kot to New Table",
|
||||
uuid.UUID("5ed5796a-ca99-437f-8f67-483b1ade81ed"),
|
||||
),
|
||||
Permission("Move Table", uuid.UUID("cfdb69c9-d37a-40af-bef2-e29c04602543")),
|
||||
Permission("NC Product", uuid.UUID("54263587-773e-4cbb-b1e4-4e814141158e")),
|
||||
Permission("Open Bill", uuid.UUID("5811d233-a1ae-4d32-af52-cebbf46d274a")),
|
||||
Permission("Owner", uuid.UUID("6d109b66-8452-42aa-bbe9-d4cef440b7a1")),
|
||||
Permission("Print Bill", uuid.UUID("92242eae-bd38-4223-829b-2f981933b7f2")),
|
||||
Permission("Print Kot", uuid.UUID("0eef56fb-7741-49fd-8b84-5069cccae767")),
|
||||
Permission("Products", uuid.UUID("f1f892ed-34aa-4c50-be12-dbaf48be7d4c")),
|
||||
Permission("Roles", uuid.UUID("d39f86f6-14e4-4fc3-b07e-01e2501a6f65")),
|
||||
Permission("Sales", uuid.UUID("92ba45c4-2d34-4cbd-b5b8-d9164c3595d5")),
|
||||
Permission("Sales Analysis", uuid.UUID("0c1acb7c-9116-46e2-a3be-9d632e811330")),
|
||||
Permission("Sales Detail", uuid.UUID("e6476396-ef83-4c47-bc20-9f3b936813f9")),
|
||||
Permission("Settle Bill", uuid.UUID("9f7b658a-25bc-4a53-8560-2dde1c7a188a")),
|
||||
Permission("Split Bill", uuid.UUID("0a8cfaf4-624e-478f-be65-c3b6392078c7")),
|
||||
Permission("Tables", uuid.UUID("ac4512e8-efdd-429e-a7ae-a34d18782663")),
|
||||
Permission("Tax Analysis", uuid.UUID("bab36396-53dd-44ea-ab3c-426efa7830c8")),
|
||||
Permission("Taxes", uuid.UUID("5c8fcdde-460d-4047-810f-e34fb899fadc")),
|
||||
Permission("Users", uuid.UUID("243447b8-b403-47e6-8b3d-8e76f4df44a9")),
|
||||
Permission("Void Bill", uuid.UUID("e3c76262-adc0-4936-8b4d-217c6292298b")),
|
||||
Permission(
|
||||
"Void or Reprinted Bill Report",
|
||||
uuid.UUID("30c8e743-c710-42d7-843a-0b75543b3516"),
|
||||
),
|
||||
Permission("Printers", uuid.UUID("5b66c6f6-003a-4ef8-ba28-49b8ff1ac33c")),
|
||||
Permission("Sections", uuid.UUID("c973f32c-a37b-496a-8dc5-60d2e4c39e97")),
|
||||
]
|
||||
|
||||
for permission in permissions:
|
||||
db.add(permission)
|
||||
|
||||
roles = [
|
||||
Role("Owner", uuid.UUID("06ec0ddb-949c-4357-aefb-65e5e55a9ae7")),
|
||||
Role("Accountant", uuid.UUID("57d4538c-257a-4bf4-9a42-342992cb6af3")),
|
||||
Role("Bar Captain", uuid.UUID("5a8ebb05-4817-45a5-866f-e523c30bfa25")),
|
||||
Role("Captain", uuid.UUID("8db7001f-0964-4607-84f5-b6f4d9183fef")),
|
||||
Role("Cashier", uuid.UUID("f1f0b112-1404-4b55-b121-f07ee6e08d12")),
|
||||
Role("Controller", uuid.UUID("d9a5a478-1fe4-4847-84da-63cfba1a094a")),
|
||||
Role("Manager", uuid.UUID("90ea7b14-9057-4bfd-a7cf-0ee7a3bb2463")),
|
||||
Role("Senior Captain", uuid.UUID("d9b1b433-1ed5-4109-8ab2-cbd48ff010cd")),
|
||||
Role("Server", uuid.UUID("6b378b71-f091-4485-a589-8db94ff1d6a4")),
|
||||
]
|
||||
|
||||
roles[0].permissions = permissions
|
||||
roles[1].permissions = list(permissions[i] for i in [2, 3, 11, 18, 24, 25, 26, 30, 34])
|
||||
roles[2].permissions = list(permissions[i] for i in [26])
|
||||
roles[3].permissions = list(permissions[i] for i in [16])
|
||||
roles[4].permissions = list(permissions[i] for i in [20, 24, 27])
|
||||
roles[5].permissions = list(permissions[i] for i in [0, 2, 7, 11, 18, 22, 24, 25, 26, 34])
|
||||
roles[6].permissions = list(permissions[i] for i in [2, 3, 4, 5, 6, 8, 11, 14, 18, 22, 25, 26, 28, 29, 33, 34])
|
||||
roles[7].permissions = list(permissions[i] for i in [9, 12, 13, 15, 16])
|
||||
roles[8].permissions = list(permissions[i] for i in [21, 24])
|
||||
|
||||
for role in roles:
|
||||
db.add(role)
|
||||
|
||||
admin = User("Admin", "123456", False)
|
||||
admin.roles.append(roles[0])
|
||||
db.add(admin)
|
|
@ -42,12 +42,12 @@ class Inventory:
|
|||
product_id: Mapped[uuid.UUID] = mapped_column(
|
||||
"product_id", UUID(as_uuid=True), ForeignKey("products.id"), nullable=False
|
||||
)
|
||||
quantity: Mapped[Decimal] = mapped_column("quantity", Numeric(precision=15, scale=2))
|
||||
price: Mapped[Decimal] = mapped_column("price", Numeric(precision=15, scale=2))
|
||||
quantity: Mapped[Decimal] = mapped_column("quantity", Numeric(precision=15, scale=2), nullable=False)
|
||||
price: Mapped[Decimal] = mapped_column("price", Numeric(precision=15, scale=2), nullable=False)
|
||||
is_happy_hour: Mapped[bool] = mapped_column("is_happy_hour", Boolean, nullable=False)
|
||||
tax_rate: Mapped[Decimal] = mapped_column("tax_rate", Numeric(precision=15, scale=5))
|
||||
tax_rate: Mapped[Decimal] = mapped_column("tax_rate", Numeric(precision=15, scale=5), nullable=False)
|
||||
tax_id: Mapped[uuid.UUID] = mapped_column("tax_id", UUID(as_uuid=True), ForeignKey("taxes.id"), nullable=False)
|
||||
discount: Mapped[Decimal] = mapped_column("discount", Numeric(precision=15, scale=5))
|
||||
discount: Mapped[Decimal] = mapped_column("discount", Numeric(precision=15, scale=5), nullable=False)
|
||||
sort_order: Mapped[int] = mapped_column("sort_order", Integer, nullable=False)
|
||||
|
||||
kot: Mapped["Kot"] = relationship("Kot", back_populates="inventories")
|
||||
|
|
|
@ -36,7 +36,7 @@ class Overview:
|
|||
unique=True,
|
||||
)
|
||||
guest_book_id: Mapped[uuid.UUID] = mapped_column(
|
||||
"guest_book_id", UUID(as_uuid=True), ForeignKey("guest_book.id"), unique=True
|
||||
"guest_book_id", UUID(as_uuid=True), ForeignKey("guest_book.id"), unique=True, nullable=True
|
||||
)
|
||||
status: Mapped[str] = mapped_column("status", Unicode(255), nullable=False)
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ class Permission:
|
|||
id: Mapped[uuid.UUID] = mapped_column(
|
||||
"id", UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()"), insert_default=uuid.uuid4
|
||||
)
|
||||
name: Mapped[str] = mapped_column("name", Unicode(255), unique=True)
|
||||
name: Mapped[str] = mapped_column("name", Unicode(255), unique=True, nullable=False)
|
||||
|
||||
roles: Mapped[List["Role"]] = relationship("Role", secondary=RolePermission.__table__, back_populates="permissions")
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ class Role:
|
|||
id: Mapped[uuid.UUID] = mapped_column(
|
||||
"id", UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()"), insert_default=uuid.uuid4
|
||||
)
|
||||
name: Mapped[str] = mapped_column("name", Unicode(255), unique=True)
|
||||
name: Mapped[str] = mapped_column("name", Unicode(255), unique=True, nullable=False)
|
||||
|
||||
permissions: Mapped[List["Permission"]] = relationship(
|
||||
"Permission", secondary=RolePermission.__table__, back_populates="roles"
|
||||
|
|
|
@ -24,7 +24,7 @@ class SectionPrinter:
|
|||
"id", UUID(as_uuid=True), primary_key=True, server_default=text("gen_random_uuid()"), insert_default=uuid.uuid4
|
||||
)
|
||||
sale_category_id: Mapped[uuid.UUID] = mapped_column(
|
||||
"sale_category_id", UUID(as_uuid=True), ForeignKey("sale_categories.id")
|
||||
"sale_category_id", UUID(as_uuid=True), ForeignKey("sale_categories.id"), nullable=True
|
||||
)
|
||||
section_id: Mapped[uuid.UUID] = mapped_column(
|
||||
"section_id", UUID(as_uuid=True), ForeignKey("sections.id"), nullable=False
|
||||
|
|
|
@ -49,9 +49,11 @@ class Voucher:
|
|||
ForeignKey("food_tables.id"),
|
||||
nullable=False,
|
||||
)
|
||||
customer_id: Mapped[uuid.UUID] = mapped_column("customer_id", UUID(as_uuid=True), ForeignKey("customers.id"))
|
||||
customer_id: Mapped[uuid.UUID] = mapped_column(
|
||||
"customer_id", UUID(as_uuid=True), ForeignKey("customers.id"), nullable=True
|
||||
)
|
||||
narration: Mapped[str] = mapped_column("narration", Unicode(1000), nullable=True)
|
||||
reason: Mapped[str] = mapped_column("reason", Unicode(255))
|
||||
reason: Mapped[str] = mapped_column("reason", Unicode(255), nullable=True)
|
||||
voucher_type: Mapped[VoucherType] = mapped_column("voucher_type", Enum(VoucherType), nullable=False)
|
||||
user_id: Mapped[uuid.UUID] = mapped_column("user_id", UUID(as_uuid=True), ForeignKey("users.id"), nullable=False)
|
||||
|
||||
|
|
Loading…
Reference in New Issue