packages feed

persistent-migration 0.2.0 → 0.2.1

raw patch · 5 files changed

+27/−46 lines, 5 files

Files

CHANGELOG.md view
@@ -1,3 +1,8 @@+## persistent-migration 0.2.1++Fixes:+* Fix build for persistent-2.12.0.0+ ## persistent-migration 0.2.0  Breaking changes:
persistent-migration.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: ba05ddb62204797a742d3b09fe26c8f9469e7c342a690d1e19a803873653c5f9+-- hash: 719969a82682f1123ab4f973c7366736f3b3fa2ccc013f2c901a334894fc6408  name:           persistent-migration-version:        0.2.0+version:        0.2.1 synopsis:       Manual migrations for the persistent library description:    Manual migrations for the persistent library. category:       Database@@ -34,7 +34,6 @@       Database.Persist.Migration.Operation       Database.Persist.Migration.Operation.Types       Database.Persist.Migration.Postgres-      Database.Persist.Migration.Utils.Data       Database.Persist.Migration.Utils.Plan       Database.Persist.Migration.Utils.Sql   other-modules:
src/Database/Persist/Migration/Operation.hs view
@@ -20,7 +20,6 @@ import Data.Maybe (isNothing, mapMaybe) import Data.Text (Text) import Database.Persist.Migration.Operation.Types-import Database.Persist.Migration.Utils.Data (isConstr) import Database.Persist.Migration.Utils.Sql (MigrateSql) import Database.Persist.Sql (PersistValue, SqlPersistT) @@ -87,7 +86,7 @@    mapM_ validateColumn schema -  case length . filter (isConstr "PrimaryKey") $ constraints of+  case length . filter isPrimaryKey $ constraints of     0 -> fail' "No primary key specified"     1 -> return ()     _ -> fail' "Multiple primary keys specified"
src/Database/Persist/Migration/Operation/Types.hs view
@@ -6,13 +6,10 @@  Defines auxiliary data types that can be used in Operations. -}-{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE StandaloneDeriving #-}-{-# OPTIONS_GHC -fno-warn-orphans #-}  module Database.Persist.Migration.Operation.Types   ( ColumnIdentifier@@ -21,14 +18,14 @@   , validateColumn   , ColumnProp(..)   , TableConstraint(..)+  , isPrimaryKey   , getConstraintColumns   ) where  import Control.Monad (when)-import Data.Data (Data)+import Data.List (nub) import Data.Text (Text) import qualified Data.Text as Text-import Database.Persist.Migration.Utils.Data (hasDuplicateConstrs) import Database.Persist.Sql (PersistValue(..)) import Database.Persist.Types (SqlType) @@ -48,9 +45,18 @@  -- | Validate a Column. validateColumn :: Column -> Either String ()-validateColumn col@Column{..} = when (hasDuplicateConstrs colProps) $+validateColumn col@Column{..} = when (hasDuplicates $ map getColumnPropName colProps) $   Left $ "Duplicate column properties detected: " ++ show col+  where+    hasDuplicates l = length l /= length (nub l) +    getColumnPropName :: ColumnProp -> String+    getColumnPropName = \case+      NotNull{} -> "NotNull"+      References{} -> "References"+      AutoIncrement{} -> "AutoIncrement"+      Default{} -> "Default"+ -- | A property for a 'Column'. data ColumnProp   = NotNull@@ -66,15 +72,18 @@     -- See 'AddColumn' for setting the default value for existing rows in a migration.     --     -- More info: https://www.yesodweb.com/book/persistent#persistent_attributes-  deriving (Show,Eq,Data)--deriving instance Data PersistValue+  deriving (Show,Eq)  -- | Table constraints in a CREATE query. data TableConstraint   = PrimaryKey [Text] -- ^ PRIMARY KEY (col1, col2, ...)   | Unique Text [Text] -- ^ CONSTRAINT name UNIQUE (col1, col2, ...)-  deriving (Show,Data)+  deriving (Show)++isPrimaryKey :: TableConstraint -> Bool+isPrimaryKey = \case+  PrimaryKey{} -> True+  _ -> False  -- | Get the columns defined in the given TableConstraint. getConstraintColumns :: TableConstraint -> [Text]
− src/Database/Persist/Migration/Utils/Data.hs
@@ -1,31 +0,0 @@-{-|-Module      :  Database.Persist.Migration.Utils.Data-Maintainer  :  Brandon Chinn <brandonchinn178@gmail.com>-Stability   :  experimental-Portability :  portable--Define functions useful for data constructors.--}--module Database.Persist.Migration.Utils.Data-  ( showConstr-  , isConstr-  , hasDuplicateConstrs-  ) where--import Data.Data (Data)-import qualified Data.Data as Data-import Data.Function (on)-import Data.List (nubBy)---- | Show the name of the constructor.-showConstr :: Data a => a -> String-showConstr = Data.showConstr . Data.toConstr---- | Return True if the given constructor has the given name.-isConstr :: Data a => String -> a -> Bool-isConstr name = (== name) . showConstr---- | Return True if the given list has duplicate constructors.-hasDuplicateConstrs :: Data a => [a] -> Bool-hasDuplicateConstrs l = length l /= length (nubBy ((==) `on` showConstr) l)