main
py 62 lines 2.76 KB
Raw
1 """Add vuln reports table
2
3 Revision ID: d21f0b3329b4
4 Revises: ea1e223c3d62
5 Create Date: 2025-12-31 15:06:46.622255
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 = "d21f0b3329b4"
17 down_revision: Union[str, None] = "ea1e223c3d62"
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 "vulnerability_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_vulnerabilities", sa.Integer(), nullable=False),
39 sa.Column("critical_count", sa.Integer(), nullable=False),
40 sa.Column("high_count", sa.Integer(), nullable=False),
41 sa.Column("medium_count", sa.Integer(), nullable=False),
42 sa.Column("low_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_vulnerability_reports_customer_code"), "vulnerability_reports", ["customer_code"], unique=False)
51 op.create_index(op.f("ix_vulnerability_reports_generated_at"), "vulnerability_reports", ["generated_at"], unique=False)
52 op.create_index(op.f("ix_vulnerability_reports_status"), "vulnerability_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_vulnerability_reports_status"), table_name="vulnerability_reports")
59 op.drop_index(op.f("ix_vulnerability_reports_generated_at"), table_name="vulnerability_reports")
60 op.drop_index(op.f("ix_vulnerability_reports_customer_code"), table_name="vulnerability_reports")
61 op.drop_table("vulnerability_reports")
62 # ### end Alembic commands ###