diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/heroku-persistent.cabal b/heroku-persistent.cabal
--- a/heroku-persistent.cabal
+++ b/heroku-persistent.cabal
@@ -1,5 +1,5 @@
 name:                   heroku-persistent
-version:                0.1.0
+version:                0.2.0
 author:                 Pat Brisbin <pbrisbin@gmail.com>
 maintainer:             Pat Brisbin <pbrisbin@gmail.com>
 license:                MIT
diff --git a/src/Web/Heroku/Persist/Postgresql.hs b/src/Web/Heroku/Persist/Postgresql.hs
--- a/src/Web/Heroku/Persist/Postgresql.hs
+++ b/src/Web/Heroku/Persist/Postgresql.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE OverloadedStrings #-}
 module Web.Heroku.Persist.Postgresql
     ( postgresConf
+    , fromDatabaseUrl
     ) where
 
 import Control.Applicative ((<$>))
@@ -10,10 +11,11 @@
 import Data.Monoid ((<>))
 import Database.Persist.Postgresql (PostgresConf(..))
 import Web.Heroku (dbConnParams)
+import Web.Heroku.Postgres (dbConnParams, parseDatabaseUrl)
 
 import qualified Data.Text as T
 
--- | Build a @'PostgresConf'@ by parsing @DATABASE_URL@
+-- | Build a @'PostgresConf'@ by parsing @ENV[DATABASE_URL]@
 postgresConf :: Int -> IO PostgresConf
 postgresConf size = do
     connStr <- formatParams <$> dbConnParams
@@ -22,6 +24,13 @@
         { pgConnStr = connStr
         , pgPoolSize = size
         }
+
+-- | Build a @'PostgresConf'@ by parsing a database URL String
+fromDatabaseUrl :: Int -> String -> PostgresConf
+fromDatabaseUrl size url = PostgresConf
+    { pgConnStr = formatParams $ parseDatabaseUrl url
+    , pgPoolSize = size
+    }
 
 formatParams :: [(Text, Text)] -> ByteString
 formatParams = encodeUtf8 . T.unwords . map toKeyValue
