diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
-## [*Unreleased*](https://github.com/freckle/graphula/compare/v2.0.0.3...main)
+## [*Unreleased*](https://github.com/freckle/graphula/compare/v2.0.0.4...main)
 
 None
+
+## [v2.0.0.4](https://github.com/freckle/graphula/compare/v2.0.0.3...v2.0.0.4)
+
+- Relax persistent packages' upper bounds
 
 ## [v2.0.0.3](https://github.com/freckle/graphula/compare/v2.0.0.2...v2.0.0.3)
 
diff --git a/graphula.cabal b/graphula.cabal
--- a/graphula.cabal
+++ b/graphula.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.12
 name:               graphula
-version:            2.0.0.3
+version:            2.0.0.4
 license:            MIT
 license-file:       LICENSE
 maintainer:         Freckle Education
@@ -36,20 +36,20 @@
 
     build-depends:
         HUnit >=1.6.1.0 && <1.7,
-        QuickCheck >=2.13.2 && <2.15,
-        base >=4.13.0.0 && <5,
+        QuickCheck >=2.14.2 && <2.15,
+        base >=4.14.1.0 && <5,
         containers >=0.6.2.1 && <0.7,
         directory >=1.3.6.0 && <1.4,
         generics-eot >=0.4.0.1 && <0.5,
         mtl >=2.2.2 && <2.3,
-        persistent >=2.10.5.3 && <2.12,
+        persistent >=2.11.0.4 && <2.13,
         random >=1.1 && <1.3,
         semigroups >=0.19.1 && <0.20,
         temporary ==1.3.*,
-        text >=1.2.4.0 && <1.3,
+        text >=1.2.4.1 && <1.3,
         transformers >=0.5.6.2 && <0.6,
-        unliftio >=0.2.13.1 && <0.3,
-        unliftio-core >=0.1.2.0 && <0.3
+        unliftio >=0.2.14 && <0.3,
+        unliftio-core >=0.2.0.1 && <0.3
 
     if impl(ghc >=8.10)
         ghc-options:
@@ -69,25 +69,25 @@
         -Wno-implicit-prelude -pgmL markdown-unlit
 
     build-depends:
-        QuickCheck >=2.13.2 && <2.15,
-        aeson >=1.4.7.1 && <1.6,
-        base >=4.13.0.0 && <5,
-        bytestring >=0.10.10.1 && <0.12,
+        QuickCheck >=2.14.2 && <2.15,
+        aeson >=1.5.6.0 && <1.6,
+        base >=4.14.1.0 && <5,
+        bytestring >=0.10.12.0 && <0.12,
         containers >=0.6.2.1 && <0.7,
         graphula -any,
-        hspec >=2.7.4 && <2.8,
+        hspec >=2.7.8 && <2.8,
         http-api-data >=0.4.1.1 && <0.5,
-        markdown-unlit >=0.5.0 && <0.6,
-        monad-logger >=0.3.35 && <0.4,
+        markdown-unlit >=0.5.1 && <0.6,
+        monad-logger >=0.3.36 && <0.4,
         path-pieces >=0.2.1 && <0.3,
-        persistent >=2.10.5.3 && <2.12,
-        persistent-sqlite >=2.10.6.2 && <2.12,
-        persistent-template >=2.8.2.3 && <2.10,
+        persistent >=2.11.0.4 && <2.13,
+        persistent-sqlite >=2.11.1.0 && <2.13,
+        persistent-template >=2.9.1.0 && <2.13,
         resourcet >=1.2.4.2 && <1.3,
-        text >=1.2.4.0 && <1.3,
+        text >=1.2.4.1 && <1.3,
         transformers >=0.5.6.2 && <0.6,
-        unliftio-core >=0.1.2.0 && <0.3,
-        uuid >=1.3.13 && <1.4
+        unliftio-core >=0.2.0.1 && <0.3,
+        uuid >=1.3.14 && <1.4
 
     if impl(ghc >=8.10)
         ghc-options:
