packages feed

persistent-postgresql 2.6.2.2 → 2.6.3

raw patch · 3 files changed

+18/−2 lines, 3 files

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+## 2.6.3++* Added new function `migrateEnableExtension`, to enable Postgres extensions in migrations.+ ## 2.6.2.2  * Because `text` and `varchar` are synonyms in Postgresql, don't attempt to migrate between them. [#762](https://github.com/yesodweb/persistent/pull/762)
Database/Persist/Postgresql.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE ViewPatterns #-}@@ -26,6 +27,7 @@     , tableName     , fieldName     , mockMigration+    , migrateEnableExtension     ) where  import Database.Persist.Sql@@ -74,7 +76,7 @@ import Data.Aeson.Types (modifyFailure) import Control.Monad (forM) import Control.Monad.Trans.Reader (runReaderT)-import Control.Monad.Trans.Writer (runWriterT)+import Control.Monad.Trans.Writer (WriterT(..), runWriterT) import Data.Acquire (Acquire, mkAcquire, with) import System.Environment (getEnvironment) import Data.Int (Int64)@@ -1185,3 +1187,13 @@       result = runReaderT $ runWriterT $ runWriterT mig   resp <- result sqlbackend   mapM_ T.putStrLn $ map snd $ snd resp++-- | Enable a Postgres extension. See https://www.postgresql.org/docs/10/static/contrib.html+-- for a list.+migrateEnableExtension :: Text -> Migration+migrateEnableExtension extName = WriterT $ WriterT $ do+  res :: [Single Int] <-+    rawSql "SELECT COUNT(*) FROM pg_catalog.pg_extension WHERE extname = ?" [PersistText extName]+  if res == [Single 0]+    then return (((), []) , [(False, "CREATe EXTENSION \"" <> extName <> "\"")])+    else return (((), []), [])
persistent-postgresql.cabal view
@@ -1,5 +1,5 @@ name:            persistent-postgresql-version:         2.6.2.2+version:         2.6.3 license:         MIT license-file:    LICENSE author:          Felipe Lessa, Michael Snoyman <michael@snoyman.com>