1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
"""init database
Revision ID: 940afc736a0f
Revises:
Create Date: 2026-03-23 02:21:35.245634
"""
from typing import Sequence, Union
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision: str = "940afc736a0f"
down_revision: Union[str, Sequence[str], None] = None
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
"""Upgrade schema."""
# ### commands auto generated by Alembic - please adjust! ###
op.create_table(
"announcement",
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
sa.Column("message", sa.JSON(), nullable=False),
sa.Column("datetime", sa.DateTime(), nullable=False),
sa.PrimaryKeyConstraint("id", name=op.f("pk_announcement")),
)
op.create_table(
"invoice",
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
sa.Column("amount", sa.Float(), nullable=False),
sa.Column("datetime", sa.DateTime(), nullable=False),
sa.PrimaryKeyConstraint("id", name=op.f("pk_invoice")),
)
op.create_table(
"user",
sa.Column("id", sa.Integer(), autoincrement=False, nullable=False),
sa.Column("role", sa.Enum("REGULAR", "ADMIN", name="userrole"), nullable=False),
sa.Column("vpn_link", sa.String(), nullable=False),
sa.Column("datetime", sa.DateTime(), nullable=False),
sa.PrimaryKeyConstraint("id", name=op.f("pk_user")),
)
op.create_table(
"payment",
sa.Column("id", sa.Integer(), autoincrement=True, nullable=False),
sa.Column("user_id", sa.Integer(), nullable=False),
sa.Column("invoice_id", sa.Integer(), nullable=False),
sa.Column("receipt_file_id", sa.String(), nullable=False),
sa.Column("datetime", sa.DateTime(), nullable=False),
sa.ForeignKeyConstraint(
["invoice_id"], ["invoice.id"], name=op.f("fk_payment_invoice_id_invoice")
),
sa.ForeignKeyConstraint(
["user_id"], ["user.id"], name=op.f("fk_payment_user_id_user")
),
sa.PrimaryKeyConstraint("id", name=op.f("pk_payment")),
)
# ### end Alembic commands ###
def downgrade() -> None:
"""Downgrade schema."""
# ### commands auto generated by Alembic - please adjust! ###
op.drop_table("payment")
op.drop_table("user")
op.drop_table("invoice")
op.drop_table("announcement")
# ### end Alembic commands ###
|