main
py 62 lines 2.62 KB
Raw
1 """Add sca reports table
2
3 Revision ID: 2b39bb1f528f
4 Revises: d21f0b3329b4
5 Create Date: 2026-01-24 13:18:30.452434
6
7 """
8 from typing import Sequence
9 from typing import Union
10
11 import sqlalchemy as sa
12
13 from alembic import op
14
15 # revision identifiers, used by Alembic.
16 revision: str = "2b39bb1f528f"
17 down_revision: Union[str, None] = "d21f0b3329b4"
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 # ### commands auto generated by Alembic - please adjust! ###
24 op.create_table(
25 "sca_reports",
26 sa.Column("filters_json", sa.Text(), nullable=True),
27 sa.Column("error_message", sa.Text(), nullable=True),
28 sa.Column("id", sa.Integer(), nullable=False),
29 sa.Column("report_name", sa.String(length=255), nullable=False),
30 sa.Column("customer_code", sa.String(length=50), nullable=False),
31 sa.Column("bucket_name", sa.String(length=255), nullable=False),
32 sa.Column("object_key", sa.String(length=1024), nullable=False),
33 sa.Column("file_name", sa.String(length=255), nullable=False),
34 sa.Column("file_size", sa.Integer(), nullable=False),
35 sa.Column("file_hash", sa.String(length=128), nullable=False),
36 sa.Column("generated_at", sa.DateTime(), nullable=False),
37 sa.Column("generated_by", sa.Integer(), nullable=False),
38 sa.Column("total_policies", sa.Integer(), nullable=False),
39 sa.Column("total_checks", sa.Integer(), nullable=False),
40 sa.Column("passed_count", sa.Integer(), nullable=False),
41 sa.Column("failed_count", sa.Integer(), nullable=False),
42 sa.Column("invalid_count", sa.Integer(), nullable=False),
43 sa.Column("status", sa.String(length=50), nullable=False),
44 sa.ForeignKeyConstraint(
45 ["customer_code"],
46 ["customers.customer_code"],
47 ),
48 sa.PrimaryKeyConstraint("id"),
49 )
50 op.create_index(op.f("ix_sca_reports_customer_code"), "sca_reports", ["customer_code"], unique=False)
51 op.create_index(op.f("ix_sca_reports_generated_at"), "sca_reports", ["generated_at"], unique=False)
52 op.create_index(op.f("ix_sca_reports_status"), "sca_reports", ["status"], unique=False)
53 # ### end Alembic commands ###
54
55
56 def downgrade() -> None:
57 # ### commands auto generated by Alembic - please adjust! ###
58 op.drop_index(op.f("ix_sca_reports_status"), table_name="sca_reports")
59 op.drop_index(op.f("ix_sca_reports_generated_at"), table_name="sca_reports")
60 op.drop_index(op.f("ix_sca_reports_customer_code"), table_name="sca_reports")
61 op.drop_table("sca_reports")
62 # ### end Alembic commands ###