def METHOD_NAME():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table(
        "privacydeclaration",
        sa.Column("id", sa.String(length=255), nullable=False),
        sa.Column(
            "created_at",
            sa.DateTime(timezone=True),
            server_default=sa.text("now()"),
            nullable=True,
        ),
        sa.Column(
            "updated_at",
            sa.DateTime(timezone=True),
            server_default=sa.text("now()"),
            nullable=True,
        ),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("egress", sa.ARRAY(sa.String()), nullable=True),
        sa.Column("ingress", sa.ARRAY(sa.String()), nullable=True),
        sa.Column("data_use", sa.String(), nullable=False),
        sa.Column("data_categories", sa.ARRAY(sa.String()), nullable=True),
        sa.Column("data_qualifier", sa.String(), nullable=True),
        sa.Column("data_subjects", sa.ARRAY(sa.String()), nullable=True),
        sa.Column("dataset_references", sa.ARRAY(sa.String()), nullable=True),
        sa.Column("system_id", sa.String(), nullable=False),
        sa.ForeignKeyConstraint(
            ["system_id"],
            ["ctl_systems.id"],
        ),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_index(
        op.f("ix_privacydeclaration_data_use"),
        "privacydeclaration",
        ["data_use"],
        unique=False,
    )
    op.create_index(
        op.f("ix_privacydeclaration_id"), "privacydeclaration", ["id"], unique=False
    )
    op.create_index(
        op.f("ix_privacydeclaration_name"), "privacydeclaration", ["name"], unique=False
    )
    op.create_index(
        op.f("ix_privacydeclaration_system_id"),
        "privacydeclaration",
        ["system_id"],
        unique=False,
    )
    # Data migration
    bind = op.get_bind()
    existing_declarations = bind.execute(
        text("SELECT id, privacy_declarations FROM ctl_systems;")
    )
    for row in existing_declarations:
        system_id = row["id"]
        old_privacy_declarations = row["privacy_declarations"]
        for privacy_declaration in old_privacy_declarations:
            new_privacy_declaration_id: str = "pri_" + str(uuid.uuid4())
            new_data = {
                **privacy_declaration,
                "system_id": system_id,
                "id": new_privacy_declaration_id,
            }
            insert_privacy_declarations_query = text(
                "INSERT INTO privacydeclaration (id, name, data_categories, data_qualifier, data_subjects, dataset_references, egress, ingress, system_id, data_use) "
                "VALUES (:id, :name, :data_categories, :data_qualifier, :data_subjects, :dataset_references, :egress, :ingress, :system_id, :data_use)"
            )
            bind.execute(
                insert_privacy_declarations_query,
                new_data,
            )
    op.drop_column("ctl_systems", "privacy_declarations")
    # ### end Alembic commands ###