packages feed

keiro-migrations-0.2.0.0: keiro-migrations.cabal

cabal-version:      3.0
name:               keiro-migrations
version:            0.2.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
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/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/*.sql
  migrations/manifest
  migrations.lock
  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
    MultilineStrings
    OverloadedLabels
    OverloadedStrings

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

  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
    , kiroku-store-migrations  ^>=0.2.0.0
    , pg-migrate               ^>=1.0.0.0
    , pg-migrate-embed         ^>=1.0.0.0
    , pg-migrate-import-codd   ^>=1.0.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
      , 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.2.0.0
    , optparse-applicative     >=0.17     && <0.20
    , pg-migrate               ^>=1.0.0.0
    , pg-migrate-cli           ^>=1.0.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
  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
    , 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.2.0.0
    , pg-migrate               ^>=1.0.0.0
    , pg-migrate-import-codd   ^>=1.0.0.0
    , pg-migrate-test-support  ^>=1.0.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
    , hasql                    >=1.10
    , hasql-pool               >=1.2
    , hspec                    >=2.10
    , keiro-migrations
    , kiroku-store             >=0.3      && <0.4
    , kiroku-store-migrations  ^>=0.2.0.0
    , lens                     >=5.2
    , temporary
    , text                     >=2.0
    , time                     >=1.12
    , vector                   >=0.13