diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,33 +8,23 @@
         apt:
           sources: [ hvr-ghc ]
           packages: [ ghc-7.8.4 ]
-    - env: GHCVER=7.10.3 STACK_LTS=lts-5 STACK_TEMPLATE=stack-lts-5.yaml
-      addons:
-        apt:
-          sources: [ hvr-ghc ]
-          packages: [ ghc-7.10.3 ]
     - env: GHCVER=7.10.3 STACK_LTS=lts-6 STACK_TEMPLATE=stack-lts-6.yaml
       addons:
         apt:
           sources: [ hvr-ghc ]
           packages: [ ghc-7.10.3 ]
-    - env: GHCVER=8.0.1 STACK_LTS=lts-7 STACK_TEMPLATE=stack-lts-7.yaml
-      addons:
-        apt:
-          sources: [ hvr-ghc ]
-          packages: [ ghc-8.0.1 ]
-    - env: GHCVER=8.0.2 STACK_LTS=lts-8 STACK_TEMPLATE=stack-lts-8.yaml
+    - env: GHCVER=8.0.2 STACK_LTS=lts-9 STACK_TEMPLATE=stack-lts-9.yaml
       addons:
         apt:
           sources: [ hvr-ghc ]
           packages: [ ghc-8.0.2 ]
-    - env: GHCVER=8.0.2 STACK_LTS=lts-8 STACK_TEMPLATE=stack-lts-8-hrrhead.yaml
+    - env: GHCVER=8.0.2 STACK_LTS=lts-9 STACK_TEMPLATE=stack-lts-9-hrrhead.yaml
       addons:
         apt:
           sources: [ hvr-ghc ]
           packages: [ ghc-8.0.2 ]
   allow_failures:
-    - env: GHCVER=8.0.2 STACK_LTS=lts-8 STACK_TEMPLATE=stack-lts-8-hrrhead.yaml
+    - env: GHCVER=8.0.2 STACK_LTS=lts-9 STACK_TEMPLATE=stack-lts-9-hrrhead.yaml
 
 before_install:
   # Download and unpack the stack executable
@@ -59,3 +49,7 @@
 cache:
   directories:
     - ~/.stack
+
+notifications:
+  slack:
+    secure: "Ijre6+6b3uf6M8goKFvUg71KtgwYdGCgXeOdpnQDjS5Q30od9XxlVupNk/zIEMgp8OckZSuY8dR4oxP3yGJ1gO289lNhJ5eMvfph9tsVtuYuyoLFo6iDLsl6QRwW5C88ZOrzuqjIEAKFhbt16dOkBOVhMJ3uXTYUbF/RXQtbKmNO1rPaD6seBHdzz+TUfDKG7AUx4OWgBz0dagFWK/kp5hyQjXz+0v6NYhPiHf6ZgS2v8hqUqZ2cQy1jPnWkQDYxwXC+naDytFHIyxrTbpyiU/ZRb9juGZY5Xcvd5HZK09osU27zsg6HvnejFpNsFegQ3maNVKX43oJsjLNUodau4Hd1xbwD03oz8SbKjuLlaKLibF1PcWSQFZPpy4RrXuHYMPn4MjgAzmDgl4FxAUyn2rYpqjBuiWqBTH5QplXuyCU12mTNVguWgY64d48GGyN7nprOxY0ViZIxYuBcGnljVXRJll2mDaDgRQatTpELeN4ITiw//wtCtFlz2VuVHGne3LZdQiSmjFCWQ6M2P1zF9b3fMBNmOC05FOVkH54BnKk6te2muFTN2FrOc6fQCyxlR4lxAI3nOulfLcrkQ7m0q6q43JAIkoivIMDfuECX5olq/RorL/zqBSizBbIpPSlGfz7FgnHAhYTsPaoEHr42OYN3W42mGNEiHiaJg+XGt8o="
diff --git a/.travis/stack-lts-5.yaml b/.travis/stack-lts-5.yaml
deleted file mode 100644
--- a/.travis/stack-lts-5.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-resolver: __RESOLVER__
-packages:
-- '.'
-extra-deps:
-- names-th-0.2.0.2
-- persistable-record-0.5.0.1
-- relational-query-0.9.1.0
-- sql-words-0.1.4.1
-- th-data-compat-0.0.2.2
-- th-reify-compat-0.0.1.1
-flags: {}
-extra-package-dbs: []
diff --git a/.travis/stack-lts-7.yaml b/.travis/stack-lts-7.yaml
deleted file mode 100644
--- a/.travis/stack-lts-7.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-resolver: __RESOLVER__
-packages:
-- '.'
-extra-deps:
-- persistent-mysql-2.6
-- mysql-simple-0.4.0.0
-- mysql-0.1.3
-flags:
-  persistent-relational-record:
-    test-examples: True
-extra-package-dbs: []
diff --git a/.travis/stack-lts-8-hrrhead.yaml b/.travis/stack-lts-8-hrrhead.yaml
deleted file mode 100644
--- a/.travis/stack-lts-8-hrrhead.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-resolver: __RESOLVER__
-packages:
-- '.'
-- location:
-    git: https://github.com/khibino/haskell-relational-record.git
-    commit: master
-  subdirs:
-    - names-th
-    - persistable-record
-    - relational-query
-    - sql-words
-extra-deps: []
-flags:
-  persistent-relational-record:
-    test-examples: True
-extra-package-dbs: []
diff --git a/.travis/stack-lts-8.yaml b/.travis/stack-lts-8.yaml
deleted file mode 100644
--- a/.travis/stack-lts-8.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-resolver: __RESOLVER__
-packages:
-- '.'
-- location:
-    git: https://github.com/khibino/haskell-relational-record.git
-    commit: master
-  subdirs:
-    - names-th
-    - persistable-record
-    - relational-query
-    - sql-words
-extra-deps: []
-flags:
-  persistent-relational-record:
-    test-examples: True
-extra-package-dbs: []
diff --git a/.travis/stack-lts-9-hrrhead.yaml b/.travis/stack-lts-9-hrrhead.yaml
new file mode 100644
--- /dev/null
+++ b/.travis/stack-lts-9-hrrhead.yaml
@@ -0,0 +1,21 @@
+resolver: __RESOLVER__
+packages:
+- '.'
+- location:
+    git: https://github.com/khibino/haskell-relational-record.git
+    commit: master
+  subdirs:
+    - names-th
+    - persistable-record
+    - relational-query
+    - sql-words
+  extra-dep: true
+- location:
+    git: https://github.com/khibino/haskell-product-isomorphic.git
+    commit: master
+  extra-dep: true
+extra-deps: []
+flags:
+  persistent-relational-record:
+    test-examples: True
+extra-package-dbs: []
diff --git a/.travis/stack-lts-9.yaml b/.travis/stack-lts-9.yaml
new file mode 100644
--- /dev/null
+++ b/.travis/stack-lts-9.yaml
@@ -0,0 +1,8 @@
+resolver: __RESOLVER__
+packages:
+- '.'
+extra-deps: []
+flags:
+  persistent-relational-record:
+    test-examples: True
+extra-package-dbs: []
diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.1.2.0
+
+- Support relational-query >= 0.10.0
+
 ## 0.1.1.0
 
 - Support persistable-record >= 0.5.0
diff --git a/examples/Types.hs b/examples/Types.hs
--- a/examples/Types.hs
+++ b/examples/Types.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE TemplateHaskell #-}
 
@@ -8,8 +9,13 @@
 import Database.Persist.Relational
 import Database.Persist.Sql
 import Database.Record.TH (deriveNotNullType, deriveNotNullType)
+#if MIN_VERSION_relational_query(0, 10, 0)
+import Database.Relational
+import Database.Relational.TH (defineScalarDegree, defineScalarDegree)
+#else
 import Database.Relational.Query
 import Database.Relational.Query.TH (defineScalarDegree, defineScalarDegree)
+#endif
 
 data ImageType = JPEG | PNG | BMP | GIF
                deriving (Show, Eq, Enum)
diff --git a/examples/main.hs b/examples/main.hs
--- a/examples/main.hs
+++ b/examples/main.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE OverloadedStrings #-}
 
@@ -13,7 +14,11 @@
 import Database.Persist
 import Database.Persist.MySQL
 import Database.Persist.Relational
+#if MIN_VERSION_relational_query(0, 10, 0)
+import Database.Relational as HRR hiding (fromMaybe, ($$))
+#else
 import Database.Relational.Query as HRR hiding (fromMaybe)
+#endif
 import System.Environment
 
 import qualified Image
diff --git a/persistent-relational-record.cabal b/persistent-relational-record.cabal
--- a/persistent-relational-record.cabal
+++ b/persistent-relational-record.cabal
@@ -1,5 +1,5 @@
 name:                persistent-relational-record
-version:             0.1.1.0
+version:             0.1.2.0
 synopsis:            relational-record on persisten backends.
 homepage:            http://github.com/himura/persistent-relational-record
 license:             BSD3
diff --git a/src/Database/Persist/Relational.hs b/src/Database/Persist/Relational.hs
--- a/src/Database/Persist/Relational.hs
+++ b/src/Database/Persist/Relational.hs
@@ -1,6 +1,5 @@
 {-# LANGUAGE CPP #-}
 {-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE TypeFamilies #-}
 
 -- |
@@ -38,7 +37,8 @@
 import Database.Persist.Relational.ToPersistEntity
 import Database.Persist.Sql (SqlBackend)
 import qualified Database.Persist.Sql as PersistSql
-import Database.Record (ToSql, recordToSql, runFromRecord, runToRecord)
+import Database.Record.ToSql (ToSql, recordToSql, runFromRecord)
+import Database.Record.FromSql (runToRecord)
 import Database.Relational.Query
 
 -- | Execute a HRR 'Query' and return the stream of its results.
diff --git a/src/Database/Persist/Relational/TH.hs b/src/Database/Persist/Relational/TH.hs
--- a/src/Database/Persist/Relational/TH.hs
+++ b/src/Database/Persist/Relational/TH.hs
@@ -30,8 +30,14 @@
 #endif
                           )
 import Database.Record.ToSql
-import Database.Relational.Query hiding ((!))
+#if MIN_VERSION_relational_query(0, 10, 0)
+import Database.Relational
+import Database.Relational.TH (defineTable, defineScalarDegree)
+#else
+import Database.Relational.Query
 import Database.Relational.Query.TH (defineTable, defineScalarDegree)
+#endif
+import GHC.Generics
 import Language.Haskell.TH
 
 ftToType :: FieldType -> TypeQ
@@ -63,12 +69,15 @@
         (t:_) -> do
             let columns = makeColumns t
                 tableName = T.unpack . unDBName . entityDB $ t
+                -- (mkName Generic) != ''Generic == GHC.Generics.Generic
+                deriveNames = filter (/= "Generic") . entityDerives $ t
+                derives = ''Generic : map (mkName . T.unpack) deriveNames
             tblD <- defineTable
                         config
                         schema
                         tableName
                         columns
-                        (map (mkName . T.unpack) . entityDerives $ t)
+                        derives
                         [0]
                         (Just 0)
             entI <- makeToPersistEntityInstance config schema tableName persistentRecordName columns
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -1,10 +1,7 @@
-resolver: lts-7.5
+resolver: lts-9.14
 packages:
 - '.'
-extra-deps:
-- persistent-mysql-2.6
-- mysql-simple-0.4.0.0
-- mysql-0.1.3
+extra-deps: []
 flags:
   persistent-relational-record:
     test-examples: True
diff --git a/tests/unit.hs b/tests/unit.hs
--- a/tests/unit.hs
+++ b/tests/unit.hs
@@ -1,10 +1,15 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE TemplateHaskell #-}
 
 module Main where
 
+#if MIN_VERSION_relational_query(0, 10, 0)
+import Database.Relational as HRR
+#else
 import Database.Relational.Query as HRR
+#endif
 import Fixtures.BlogSample.Model
 import qualified Fixtures.BlogSample.Post as Post
 import qualified Fixtures.BlogSample.PostTag as PostTag
@@ -53,8 +58,7 @@
 
 case_inner_join_query :: Assertion
 case_inner_join_query =
-    show subject @?= "SELECT ALL T0.id AS f0, T0.title AS f1, T0.user_id AS f2, T0.created AS f3, T0.body AS f4 \
-                     \FROM post T0 INNER JOIN user T1 ON (T1.id = T0.user_id) WHERE (T1.age > 18)"
+    show subject @?= "SELECT ALL T0.id AS f0, T0.title AS f1, T0.user_id AS f2, T0.created AS f3, T0.body AS f4 FROM post T0 INNER JOIN user T1 ON (T1.id = T0.user_id) WHERE (T1.age > 18)"
   where
     subject = relation $ do
         post <- query Post.post
@@ -65,13 +69,7 @@
 
 case_inner_join_with_subquery :: Assertion
 case_inner_join_with_subquery =
-    show subject @?= "SELECT ALL T0.id AS f0, T0.title AS f1, T0.user_id AS f2, T0.created AS f3, T0.body AS f4 \
-                     \FROM post T0 \
-                     \INNER JOIN (SELECT ALL T2.post_id AS f0 FROM tag T1 \
-                                 \INNER JOIN post_tag T2 ON (T1.id = T2.tag_id) \
-                                 \WHERE (T1.name IN ('haskell', 'hrr')) \
-                                 \GROUP BY T2.post_id HAVING (COUNT(T2.post_id) = 2)) T3 \
-                     \ON (T0.id = T3.f0)"
+    show subject @?= "SELECT ALL T0.id AS f0, T0.title AS f1, T0.user_id AS f2, T0.created AS f3, T0.body AS f4 FROM post T0 INNER JOIN (SELECT ALL T2.post_id AS f0 FROM tag T1 INNER JOIN post_tag T2 ON (T1.id = T2.tag_id) WHERE (T1.name IN ('haskell', 'hrr')) GROUP BY T2.post_id HAVING (COUNT(T2.post_id) = 2)) T3 ON (T0.id = T3.f0)"
   where
     subject = relation $ do
         post <- query Post.post
