persistent-postgresql 2.6.2.2 → 2.6.3
raw patch · 3 files changed
+18/−2 lines, 3 files
Files
- ChangeLog.md +4/−0
- Database/Persist/Postgresql.hs +13/−1
- persistent-postgresql.cabal +1/−1
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>