persistent-postgresql 2.13.0.2 → 2.13.0.3
raw patch · 5 files changed
+66/−2 lines, 5 files
Files
- ChangeLog.md +5/−0
- Database/Persist/Postgresql.hs +1/−1
- persistent-postgresql.cabal +2/−1
- test/MigrationReferenceSpec.hs +56/−0
- test/main.hs +2/−0
ChangeLog.md view
@@ -1,5 +1,10 @@ # Changelog for persistent-postgresql +## 2.13.0.3++* [#1290](https://github.com/yesodweb/persistent/pull/1290)+ * Fix the code path for adding references to previously defined columns.+ ## 2.13.0.2 * Actually release the SafeTORemove fix
Database/Persist/Postgresql.hs view
@@ -1268,7 +1268,7 @@ | Just _oldName /= fmap fieldDB (getEntityIdField edef) -> [AddReference- (getEntityDBName edef)+ (crTableName colRef) (crConstraintName colRef) [name] (NEL.toList $ Util.dbIdColumnsEsc escapeF refdef)
persistent-postgresql.cabal view
@@ -1,5 +1,5 @@ name: persistent-postgresql-version: 2.13.0.2+version: 2.13.0.3 license: MIT license-file: LICENSE author: Felipe Lessa, Michael Snoyman <michael@snoyman.com>@@ -55,6 +55,7 @@ PgIntervalTest UpsertWhere ImplicitUuidSpec+ MigrationReferenceSpec ghc-options: -Wall build-depends: base >= 4.9 && < 5
+ test/MigrationReferenceSpec.hs view
@@ -0,0 +1,56 @@+{-# LANGUAGE ExistentialQuantification #-}+{-# LANGUAGE OverloadedStrings, DataKinds, FlexibleInstances #-}+{-# LANGUAGE QuasiQuotes #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# OPTIONS_GHC -Wno-unused-top-binds #-}++module MigrationReferenceSpec where++import PgInit++import Control.Monad.Trans.Writer (censor, mapWriterT)+import Data.Text (Text, isInfixOf)++share [mkPersist sqlSettings, mkMigrate "referenceMigrate"] [persistLowerCase|++LocationCapabilities+ Id Text+ bio Text++LocationCapabilitiesPrintingProcess+ locationCapabilitiesId LocationCapabilitiesId++LocationCapabilitiesPrintingFinish+ locationCapabilitiesId LocationCapabilitiesId++LocationCapabilitiesSubstrate+ locationCapabilitiesId LocationCapabilitiesId++|]++spec :: Spec+spec = describe "MigrationReferenceSpec" $ do+ it "works" $ runConnAssert $ do+ let+ noForeignKeys :: CautiousMigration -> CautiousMigration+ noForeignKeys = filter ((not . isReference) . snd)++ onlyForeignKeys :: CautiousMigration -> CautiousMigration+ onlyForeignKeys = filter (isReference . snd)++ isReference :: Text -> Bool+ isReference migration = "REFERENCES" `isInfixOf` migration++ runMigration+ $ mapWriterT (censor noForeignKeys)+ $ referenceMigrate++ runMigration+ $ mapWriterT (censor onlyForeignKeys)+ $ referenceMigrate
test/main.hs view
@@ -57,6 +57,7 @@ import qualified LongIdentifierTest import qualified PgIntervalTest import qualified GeneratedColumnTestSQL+import qualified MigrationReferenceSpec type Tuple = (,) @@ -138,6 +139,7 @@ hspec $ do ImplicitUuidSpec.spec+ MigrationReferenceSpec.spec RenameTest.specsWith runConnAssert DataTypeTest.specsWith runConnAssert (Just (runMigrationSilent dataTypeMigrate))