packages feed

keiro-migrations-0.17.0.0: keiro-migrations.cabal

cabal-version: 3.0
name: keiro-migrations
version: 0.17.0.0
synopsis: Schema migrations for keiro
description:
  Embedded PostgreSQL schema migrations and a migration runner for the Keiro
  event-sourcing framework.

license: BSD-3-Clause
license-file: LICENSE
author: Nadeem Bitar
maintainer: nadeem@gmail.com
copyright: 2026 Nadeem Bitar
category: Database
build-type: Simple
tested-with: ghc >=9.12 && <9.13
extra-doc-files:
  CHANGELOG.md
  README.md

extra-source-files:
  expected-schema/native/keiro-v18.txt
  expected-schema/v18/db-settings
  expected-schema/v18/roles/keiro
  expected-schema/v18/schemas/keiro/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/cols/awakeable_id
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/cols/completed_at
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/cols/created_at
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/cols/owner_workflow_id
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/cols/owner_workflow_name
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/cols/payload
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/cols/status
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/cols/updated_at
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/constraints/keiro_awakeables_awakeable_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/constraints/keiro_awakeables_created_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/constraints/keiro_awakeables_owner_workflow_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/constraints/keiro_awakeables_owner_workflow_name_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/constraints/keiro_awakeables_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/constraints/keiro_awakeables_status_chk
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/constraints/keiro_awakeables_status_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/constraints/keiro_awakeables_updated_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/indexes/keiro_awakeables_owner_idx
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/indexes/keiro_awakeables_pending_idx
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/indexes/keiro_awakeables_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_awakeables/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/attempt_count
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/attributes
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/causation_id
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/completed_at
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/content_type
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/correlation_id
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/dedupe_key
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/destination
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/event_type
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/failed_at
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/kafka_offset
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/kafka_partition
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/kafka_topic
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/last_error
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/message_id
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/occurred_at
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/payload_bytes
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/received_at
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/schema_fingerprint
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/schema_id
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/schema_registry
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/schema_subject
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/schema_version
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/schema_version_ref
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/source
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/source_event_id
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/source_global_position
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/status
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/traceparent
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/cols/tracestate
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/constraints/keiro_inbox_attempt_count_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/constraints/keiro_inbox_content_type_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/constraints/keiro_inbox_dedupe_key_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/constraints/keiro_inbox_payload_bytes_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/constraints/keiro_inbox_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/constraints/keiro_inbox_received_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/constraints/keiro_inbox_source_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/constraints/keiro_inbox_status_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/indexes/keiro_inbox_backlog_idx
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/indexes/keiro_inbox_completed_idx
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/indexes/keiro_inbox_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_inbox/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/attempt_count
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/attributes
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/causation_id
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/content_type
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/correlation_id
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/created_at
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/destination
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/event_type
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/last_error
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/message_id
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/message_key
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/next_attempt_at
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/occurred_at
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/outbox_id
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/payload_bytes
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/published_at
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/schema_fingerprint
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/schema_id
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/schema_registry
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/schema_subject
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/schema_version
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/schema_version_ref
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/source
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/source_event_id
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/source_global_position
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/status
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/traceparent
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/tracestate
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/cols/updated_at
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_attempt_count_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_content_type_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_created_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_destination_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_event_type_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_message_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_next_attempt_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_occurred_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_outbox_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_payload_bytes_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_schema_version_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_source_message_id_key
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_source_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_status_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/constraints/keiro_outbox_updated_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/indexes/keiro_outbox_claim_order_idx
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/indexes/keiro_outbox_head_of_line_idx
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/indexes/keiro_outbox_pending_idx
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/indexes/keiro_outbox_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/indexes/keiro_outbox_sent_gc_idx
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/indexes/keiro_outbox_source_message_id_key
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/indexes/keiro_outbox_source_order_idx
  expected-schema/v18/schemas/keiro/tables/keiro_outbox/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_projection_dedup/cols/applied_at
  expected-schema/v18/schemas/keiro/tables/keiro_projection_dedup/cols/event_id
  expected-schema/v18/schemas/keiro/tables/keiro_projection_dedup/cols/projection_name
  expected-schema/v18/schemas/keiro/tables/keiro_projection_dedup/constraints/keiro_projection_dedup_applied_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_projection_dedup/constraints/keiro_projection_dedup_event_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_projection_dedup/constraints/keiro_projection_dedup_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_projection_dedup/constraints/keiro_projection_dedup_projection_name_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_projection_dedup/indexes/keiro_projection_dedup_applied_at_idx
  expected-schema/v18/schemas/keiro/tables/keiro_projection_dedup/indexes/keiro_projection_dedup_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_projection_dedup/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/cols/last_built_at
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/cols/name
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/cols/shape_hash
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/cols/status
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/cols/updated_at
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/cols/version
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/constraints/keiro_read_models_name_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/constraints/keiro_read_models_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/constraints/keiro_read_models_shape_hash_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/constraints/keiro_read_models_status_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/constraints/keiro_read_models_updated_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/constraints/keiro_read_models_version_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/indexes/keiro_read_models_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_read_models/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/cols/created_at
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/cols/regfile_shape_hash
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/cols/state
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/cols/state_codec_version
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/cols/stream_id
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/cols/stream_version
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/cols/updated_at
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/constraints/keiro_snapshots_created_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/constraints/keiro_snapshots_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/constraints/keiro_snapshots_regfile_shape_hash_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/constraints/keiro_snapshots_state_codec_version_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/constraints/keiro_snapshots_state_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/constraints/keiro_snapshots_stream_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/constraints/keiro_snapshots_stream_version_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/constraints/keiro_snapshots_updated_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/indexes/keiro_snapshots_compat_idx
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/indexes/keiro_snapshots_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_snapshots/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/cols/bucket
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/cols/heartbeat_at
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/cols/lease_expires_at
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/cols/owner_worker_id
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/cols/shard_count
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/cols/subscription_name
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/cols/updated_at
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/constraints/keiro_subscription_shards_bucket_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/constraints/keiro_subscription_shards_bucket_range_chk
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/constraints/keiro_subscription_shards_count_chk
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/constraints/keiro_subscription_shards_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/constraints/keiro_subscription_shards_shard_count_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/constraints/keiro_subscription_shards_subscription_name_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/constraints/keiro_subscription_shards_updated_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/indexes/keiro_subscription_shards_lease_idx
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/indexes/keiro_subscription_shards_owner_idx
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/indexes/keiro_subscription_shards_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_subscription_shards/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/attempts
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/correlation_id
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/created_at
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/fire_at
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/fired_event_id
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/last_error
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/payload
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/process_manager_name
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/status
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/timer_id
  expected-schema/v18/schemas/keiro/tables/keiro_timers/cols/updated_at
  expected-schema/v18/schemas/keiro/tables/keiro_timers/constraints/keiro_timers_attempts_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_timers/constraints/keiro_timers_correlation_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_timers/constraints/keiro_timers_created_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_timers/constraints/keiro_timers_fire_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_timers/constraints/keiro_timers_payload_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_timers/constraints/keiro_timers_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_timers/constraints/keiro_timers_process_manager_name_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_timers/constraints/keiro_timers_status_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_timers/constraints/keiro_timers_timer_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_timers/constraints/keiro_timers_updated_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_timers/indexes/keiro_timers_due_idx
  expected-schema/v18/schemas/keiro/tables/keiro_timers/indexes/keiro_timers_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_timers/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/cols/await_step
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/cols/child_id
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/cols/child_name
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/cols/completed_at
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/cols/created_at
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/cols/parent_id
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/cols/parent_name
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/cols/result
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/cols/status
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/cols/updated_at
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/constraints/keiro_workflow_children_await_step_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/constraints/keiro_workflow_children_child_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/constraints/keiro_workflow_children_child_name_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/constraints/keiro_workflow_children_created_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/constraints/keiro_workflow_children_parent_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/constraints/keiro_workflow_children_parent_name_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/constraints/keiro_workflow_children_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/constraints/keiro_workflow_children_status_chk
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/constraints/keiro_workflow_children_status_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/constraints/keiro_workflow_children_updated_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/indexes/keiro_workflow_children_parent_idx
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/indexes/keiro_workflow_children_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/indexes/keiro_workflow_children_running_idx
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_children/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/cols/generation
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/cols/recorded_at
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/cols/result
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/cols/step_name
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/cols/workflow_id
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/cols/workflow_name
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/constraints/keiro_workflow_steps_generation_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/constraints/keiro_workflow_steps_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/constraints/keiro_workflow_steps_recorded_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/constraints/keiro_workflow_steps_result_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/constraints/keiro_workflow_steps_step_name_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/constraints/keiro_workflow_steps_workflow_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/constraints/keiro_workflow_steps_workflow_name_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/indexes/keiro_workflow_steps_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/indexes/keiro_workflow_steps_workflow_idx
  expected-schema/v18/schemas/keiro/tables/keiro_workflow_steps/objrep
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/attempts
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/completed_at
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/created_at
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/generation
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/last_error
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/lease_expires_at
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/leased_by
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/next_attempt_at
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/status
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/updated_at
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/wake_after
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/workflow_id
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/cols/workflow_name
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/constraints/keiro_workflows_attempts_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/constraints/keiro_workflows_created_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/constraints/keiro_workflows_generation_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/constraints/keiro_workflows_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/constraints/keiro_workflows_status_chk
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/constraints/keiro_workflows_status_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/constraints/keiro_workflows_updated_at_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/constraints/keiro_workflows_workflow_id_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/constraints/keiro_workflows_workflow_name_not_null
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/indexes/keiro_workflows_active_idx
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/indexes/keiro_workflows_gc_idx
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/indexes/keiro_workflows_pkey
  expected-schema/v18/schemas/keiro/tables/keiro_workflows/objrep
  migrations.lock
  migrations.native.lock
  migrations/*.sql
  migrations/manifest
  sql-migrations/*.sql

source-repository head
  type: git
  location: https://github.com/shinzui/keiro.git

flag legacy-codd-tools
  description:
    Build transitional Codd expected-schema, remediation, and ledger-fixup
    targets. The normal pg-migrate closure excludes these dependencies.

  default: False
  manual: True

common common
  default-language: GHC2024
  default-extensions:
    DeriveAnyClass
    DuplicateRecordFields
    ImportQualifiedPost
    MultilineStrings
    OverloadedLabels
    OverloadedStrings

library
  import: common
  exposed-modules:
    Keiro.Migrations
    Keiro.Migrations.History.Codd
    Keiro.Migrations.SchemaCheck

  other-modules:
    Keiro.Migrations.Internal.Definition
    Keiro.Migrations.Internal.EmbedFile

  hs-source-dirs: src
  build-depends:
    base >=4.18 && <5,
    bytestring >=0.11 && <0.13,
    containers >=0.6 && <0.8,
    hasql >=1.10 && <1.11,
    kiroku-store-migrations ^>=0.4.0.0,
    pg-migrate ^>=1.1.0.0,
    pg-migrate-embed ^>=1.1.0.0,
    pg-migrate-import-codd ^>=1.1.0.0,
    template-haskell >=2.20 && <2.24,
    text >=2.0 && <2.2,

  if flag(legacy-codd-tools)
    exposed-modules:
      Keiro.Migrations.ExpectedSchema
      Keiro.Migrations.LegacyCodd
      Keiro.Migrations.New

    build-depends:
      codd >=0.1.8 && <0.2,
      codd-extras >=0.1 && <0.2,
      directory >=1.3 && <1.4,
      file-embed >=0.0.15 && <0.0.17,
      filepath >=1.4 && <1.6,
      time >=1.12 && <1.15,

executable keiro-migrate
  import: common
  main-is: Main.hs
  hs-source-dirs: app
  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N

  build-depends:
    aeson >=2.1 && <2.3,
    base >=4.18 && <5,
    bytestring >=0.11 && <0.13,
    hasql >=1.10 && <1.11,
    keiro-migrations,
    kiroku-store-migrations ^>=0.4.0.0,
    optparse-applicative >=0.17 && <0.20,
    pg-migrate ^>=1.1.0.0,
    pg-migrate-cli ^>=1.1.0.0,
    pg-migrate-import-codd ^>=1.1.0.0,
    text >=2.0 && <2.2,

executable keiro-write-expected-schema
  import: common
  main-is: WriteExpectedSchema.hs
  hs-source-dirs: app
  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N

  if !flag(legacy-codd-tools)
    buildable: False
  build-depends:
    base,
    codd-extras:ephemeral >=0.1 && <0.2,
    keiro-migrations,
    time,

test-suite keiro-migrations-test
  import: common
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules: Lint
  hs-source-dirs: test
  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N

  build-depends:
    async,
    base >=4.18 && <5,
    bytestring >=0.11 && <0.13,
    containers >=0.6 && <0.8,
    directory >=1.3 && <1.4,
    ephemeral-pg >=0.2 && <0.3,
    filepath >=1.4 && <1.6,
    hasql >=1.10 && <1.11,
    hspec >=2.10 && <2.12,
    keiro-migrations,
    kiroku-store-migrations ^>=0.4.0.0,
    pg-migrate ^>=1.1.0.0,
    pg-migrate-import-codd ^>=1.1.0.0,
    pg-migrate-test-support ^>=1.1.0.0,
    text >=2.0 && <2.2,

test-suite keiro-migrations-legacy-test
  import: common
  type: exitcode-stdio-1.0
  main-is: Main.hs
  hs-source-dirs: test-legacy
  ghc-options:
    -threaded
    -rtsopts
    -with-rtsopts=-N

  if !flag(legacy-codd-tools)
    buildable: False
  build-depends:
    aeson,
    async,
    attoparsec,
    base >=4.18 && <5,
    codd,
    codd-extras,
    containers,
    contravariant-extras,
    directory,
    ephemeral-pg >=0.2,
    filepath,
    generic-lens >=2.2 && <2.4,
    hasql >=1.10 && <1.11,
    hasql-pool >=1.2 && <1.5,
    hspec >=2.10,
    keiro-migrations,
    kiroku-store >=0.8 && <0.9,
    kiroku-store-migrations ^>=0.4.0.0,
    lens >=5.2 && <5.4,
    temporary,
    text >=2.0 && <2.2,
    time >=1.12 && <1.15,
    vector >=0.13 && <0.14,