diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# [0.1.0.2](https://github.com/haskell-nix/hnix-store/compare/db-0.1.0.1...db-0.1.0.2) 2026-10-21
+
+* Relax upper bound on `persistent`
+
 # [0.1.0.1](https://github.com/haskell-nix/hnix-store/compare/db-0.1.0.0...db-0.1.0.1) 2025-09-03
 
 * Relax upper bounds on `esqueleto` and `persistent` [#294](https://github.com/haskell-nix/hnix-store/pull/294)
diff --git a/README.lhs b/README.lhs
--- a/README.lhs
+++ b/README.lhs
@@ -24,14 +24,14 @@
 
 import Data.Default.Class (Default(def))
 
-import qualified Control.Monad
-import qualified Control.Monad.IO.Class
+import Control.Monad qualified
+import Control.Monad.IO.Class qualified
 
-import qualified Database.Esqueleto.Experimental
+import Database.Esqueleto.Experimental qualified
 
-import qualified System.Nix.StorePath
-import qualified System.Nix.Store.DB.Run
-import qualified System.Nix.Store.DB.Schema
+import System.Nix.StorePath qualified
+import System.Nix.Store.DB.Run qualified
+import System.Nix.Store.DB.Schema qualified
 
 import System.Nix.Store.DB.Query
 
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -24,14 +24,14 @@
 
 import Data.Default.Class (Default(def))
 
-import qualified Control.Monad
-import qualified Control.Monad.IO.Class
+import Control.Monad qualified
+import Control.Monad.IO.Class qualified
 
-import qualified Database.Esqueleto.Experimental
+import Database.Esqueleto.Experimental qualified
 
-import qualified System.Nix.StorePath
-import qualified System.Nix.Store.DB.Run
-import qualified System.Nix.Store.DB.Schema
+import System.Nix.StorePath qualified
+import System.Nix.Store.DB.Run qualified
+import System.Nix.Store.DB.Schema qualified
 
 import System.Nix.Store.DB.Query
 
diff --git a/apps/Bench.hs b/apps/Bench.hs
--- a/apps/Bench.hs
+++ b/apps/Bench.hs
@@ -1,6 +1,6 @@
 module Main where
 
-import qualified System.Nix.Store.DB.Run
+import System.Nix.Store.DB.Run qualified
 
 main :: IO ()
 main = System.Nix.Store.DB.Run.bench
diff --git a/hnix-store-db.cabal b/hnix-store-db.cabal
--- a/hnix-store-db.cabal
+++ b/hnix-store-db.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                hnix-store-db
-version:             0.1.0.1
+version:             0.1.0.2
 synopsis:            Nix store database support
 description:         Implementation of the Nix store database
 homepage:            https://github.com/haskell-nix/hnix-store
@@ -32,31 +32,32 @@
 common commons
   ghc-options: -Wall -Wunused-packages
   default-extensions:
-      OverloadedStrings
+      BangPatterns
     , DataKinds
-    , DeriveGeneric
     , DeriveDataTypeable
-    , DeriveFunctor
     , DeriveFoldable
-    , DeriveTraversable
+    , DeriveFunctor
+    , DeriveGeneric
     , DeriveLift
+    , DeriveTraversable
     , DerivingStrategies
     , FlexibleContexts
     , FlexibleInstances
     , GADTs
     , GeneralizedNewtypeDeriving
+    , ImportQualifiedPost
+    , InstanceSigs
+    , LambdaCase
+    , MultiParamTypeClasses
+    , OverloadedStrings
     , RecordWildCards
     , ScopedTypeVariables
     , StandaloneDeriving
+    , TupleSections
     , TypeApplications
     , TypeFamilies
     , TypeOperators
     , TypeSynonymInstances
-    , InstanceSigs
-    , MultiParamTypeClasses
-    , TupleSections
-    , LambdaCase
-    , BangPatterns
     , ViewPatterns
   default-language: Haskell2010
 
@@ -81,7 +82,7 @@
     , text
     , time
     , esqueleto >= 3.5.10 && < 3.7
-    , persistent >= 2.14.5 && < 2.18
+    , persistent >= 2.14.5 && < 2.19
     , persistent-sqlite >= 2.13.1 && < 2.14
     , template-haskell
     , monad-logger
@@ -91,6 +92,7 @@
     , unliftio-core
 
 executable db-readme
+  import: commons
   if !flag(build-readme)
     buildable: False
   build-depends:
@@ -101,17 +103,16 @@
     , hnix-store-db
   build-tool-depends:
       markdown-unlit:markdown-unlit
-  default-language: Haskell2010
   main-is: README.lhs
   ghc-options: -pgmL markdown-unlit -Wall
 
 executable db-bench
+  import: commons
   if !flag(build-bench)
     buildable: False
   build-depends:
       base >=4.12 && <5
     , hnix-store-db
-  default-language: Haskell2010
   hs-source-dirs:   apps
   main-is: Bench.hs
   ghc-options: -Wall
diff --git a/src/System/Nix/Store/DB/Instances.hs b/src/System/Nix/Store/DB/Instances.hs
--- a/src/System/Nix/Store/DB/Instances.hs
+++ b/src/System/Nix/Store/DB/Instances.hs
@@ -15,13 +15,13 @@
 import System.Nix.StorePath (StorePath)
 import System.Nix.StorePath.Metadata (StorePathTrust(..))
 
-import qualified Data.Attoparsec.Text
-import qualified Data.Bifunctor
-import qualified Data.Text
-import qualified Data.Time.Clock.POSIX
+import Data.Attoparsec.Text qualified
+import Data.Bifunctor qualified
+import Data.Text qualified
+import Data.Time.Clock.POSIX qualified
 
-import qualified System.Nix.ContentAddress
-import qualified System.Nix.StorePath
+import System.Nix.ContentAddress qualified
+import System.Nix.StorePath qualified
 
 instance PersistField StorePath where
   toPersistValue = PersistText . System.Nix.StorePath.storePathToText def
diff --git a/src/System/Nix/Store/DB/Query.hs b/src/System/Nix/Store/DB/Query.hs
--- a/src/System/Nix/Store/DB/Query.hs
+++ b/src/System/Nix/Store/DB/Query.hs
@@ -29,11 +29,11 @@
 import System.Nix.StorePath (StoreDir, StorePath, StorePathHashPart)
 import System.Nix.Store.DB.Schema
 
-import qualified Data.ByteString.Char8
-import qualified Data.Maybe
-import qualified Data.Text
-import qualified System.Nix.StorePath
-import qualified System.Nix.StorePath.Metadata
+import Data.ByteString.Char8 qualified
+import Data.Maybe qualified
+import Data.Text qualified
+import System.Nix.StorePath qualified
+import System.Nix.StorePath.Metadata qualified
 
 -- * Queries
 
diff --git a/src/System/Nix/Store/DB/Run.hs b/src/System/Nix/Store/DB/Run.hs
--- a/src/System/Nix/Store/DB/Run.hs
+++ b/src/System/Nix/Store/DB/Run.hs
@@ -24,17 +24,17 @@
 
 import System.Nix.Store.DB.Query
 
-import qualified Control.Monad
-import qualified Control.Monad.IO.Class
-import qualified Control.Monad.Logger
-import qualified Data.ByteString.Char8
-import qualified Database.Esqueleto.Experimental
-import qualified Database.Persist.Sql
-import qualified Database.Persist.Sqlite
-import qualified System.Log.FastLogger
-import qualified System.Nix.StorePath
-import qualified System.Nix.Store.DB.Schema
-import qualified System.Nix.Store.DB.Util
+import Control.Monad qualified
+import Control.Monad.IO.Class qualified
+import Control.Monad.Logger qualified
+import Data.ByteString.Char8 qualified
+import Database.Esqueleto.Experimental qualified
+import Database.Persist.Sql qualified
+import Database.Persist.Sqlite qualified
+import System.Log.FastLogger qualified
+import System.Nix.StorePath qualified
+import System.Nix.Store.DB.Schema qualified
+import System.Nix.Store.DB.Util qualified
 
 -- | @SqliteConnectionInfo@ for accessing
 -- systems database in /nix/var/nix/db/db.sqlite
diff --git a/src/System/Nix/Store/DB/Util.hs b/src/System/Nix/Store/DB/Util.hs
--- a/src/System/Nix/Store/DB/Util.hs
+++ b/src/System/Nix/Store/DB/Util.hs
@@ -14,8 +14,8 @@
 import Database.Persist.Sqlite (SqliteConnectionInfo)
 import Database.Persist.TH (persistWith)
 
-import qualified Database.Persist.Sqlite
-import qualified Lens.Micro
+import Database.Persist.Sqlite qualified
+import Lens.Micro qualified
 
 -- | Coerce table names to their plural names
 -- i.e. ValidPath -> ValidPaths
diff --git a/tests/Smoke.hs b/tests/Smoke.hs
--- a/tests/Smoke.hs
+++ b/tests/Smoke.hs
@@ -1,6 +1,6 @@
 module Main where
 
-import qualified System.Nix.Store.DB.Run
+import System.Nix.Store.DB.Run qualified
 
 -- This only tests that database can be created
 -- in-memory using migrateAll and that queryEverything
