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