packages feed

kioku-migrations-0.1.0.0: src/Kioku/Migrations/Internal/Definition.hs

{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -fplugin=Database.PostgreSQL.Migrate.Embed.RecompilePlugin #-}

module Kioku.Migrations.Internal.Definition
  ( embeddedMigrationEntries,
    kiokuMigrations,
  )
where

import Data.ByteString (ByteString)
import Data.List.NonEmpty (NonEmpty)
import Data.Set qualified as Set
import Database.PostgreSQL.Migrate
  ( DefinitionError,
    MigrationComponent,
    migrationComponentFromEmbeddedSql,
  )
import Database.PostgreSQL.Migrate.Embed (embedMigrationManifest)

embeddedMigrationEntries :: NonEmpty (FilePath, ByteString)
embeddedMigrationEntries =
  $(embedMigrationManifest "migrations/manifest")

-- The preserved @-- codd: in-txn@ comments are part of the historical payload
-- evidence used by the one-time Codd import. pg-migrate treats them as ordinary
-- SQL comments; do not remove them from the embedded bytes.
kiokuMigrations :: Either DefinitionError MigrationComponent
kiokuMigrations =
  migrationComponentFromEmbeddedSql
    "kioku"
    (Set.singleton "keiro")
    embeddedMigrationEntries