Safe Haskell | None |
---|---|
Language | Haskell98 |
A sqlite backend for persistent.
Note: If you prepend WAL=off
to your connection string, it will disable
the write-ahead log. This functionality is now deprecated in favour of using SqliteConnectionInfo.
Synopsis
- withSqlitePool :: (MonadUnliftIO m, MonadLogger m, IsSqlBackend backend) => Text -> Int -> (Pool backend -> m a) -> m a
- withSqlitePoolInfo :: (MonadUnliftIO m, MonadLogger m, IsSqlBackend backend) => SqliteConnectionInfo -> Int -> (Pool backend -> m a) -> m a
- withSqliteConn :: (MonadUnliftIO m, MonadLogger m, IsSqlBackend backend) => Text -> (backend -> m a) -> m a
- withSqliteConnInfo :: (MonadUnliftIO m, MonadLogger m, IsSqlBackend backend) => SqliteConnectionInfo -> (backend -> m a) -> m a
- createSqlitePool :: (MonadLogger m, MonadUnliftIO m, IsSqlBackend backend) => Text -> Int -> m (Pool backend)
- createSqlitePoolFromInfo :: (MonadLogger m, MonadUnliftIO m, IsSqlBackend backend) => SqliteConnectionInfo -> Int -> m (Pool backend)
- module Database.Persist.Sql
- data SqliteConf
- = SqliteConf {
- sqlDatabase :: Text
- sqlPoolSize :: Int
- | SqliteConfInfo { }
- = SqliteConf {
- data SqliteConnectionInfo
- mkSqliteConnectionInfo :: Text -> SqliteConnectionInfo
- sqlConnectionStr :: Lens' SqliteConnectionInfo Text
- walEnabled :: Lens' SqliteConnectionInfo Bool
- fkEnabled :: Lens' SqliteConnectionInfo Bool
- extraPragmas :: Lens' SqliteConnectionInfo [Text]
- runSqlite :: (MonadUnliftIO m, IsSqlBackend backend) => Text -> ReaderT backend (NoLoggingT (ResourceT m)) a -> m a
- runSqliteInfo :: (MonadUnliftIO m, IsSqlBackend backend) => SqliteConnectionInfo -> ReaderT backend (NoLoggingT (ResourceT m)) a -> m a
- wrapConnection :: IsSqlBackend backend => Connection -> LogFunc -> IO backend
- wrapConnectionInfo :: IsSqlBackend backend => SqliteConnectionInfo -> Connection -> LogFunc -> IO backend
- mockMigration :: Migration -> IO ()
Documentation
:: (MonadUnliftIO m, MonadLogger m, IsSqlBackend backend) | |
=> Text | |
-> Int | number of connections to open |
-> (Pool backend -> m a) | |
-> m a |
Run the given action with a connection pool.
Like createSqlitePool
, this should not be used with :memory:
.
:: (MonadUnliftIO m, MonadLogger m, IsSqlBackend backend) | |
=> SqliteConnectionInfo | |
-> Int | number of connections to open |
-> (Pool backend -> m a) | |
-> m a |
Run the given action with a connection pool.
Like createSqlitePool
, this should not be used with :memory:
.
Since: persistent-sqlite-2.6.2
withSqliteConn :: (MonadUnliftIO m, MonadLogger m, IsSqlBackend backend) => Text -> (backend -> m a) -> m a Source #
withSqliteConnInfo :: (MonadUnliftIO m, MonadLogger m, IsSqlBackend backend) => SqliteConnectionInfo -> (backend -> m a) -> m a Source #
Since: persistent-sqlite-2.6.2
createSqlitePool :: (MonadLogger m, MonadUnliftIO m, IsSqlBackend backend) => Text -> Int -> m (Pool backend) Source #
Create a pool of SQLite connections.
Note that this should not be used with the :memory:
connection string, as
the pool will regularly remove connections, destroying your database.
Instead, use withSqliteConn
.
createSqlitePoolFromInfo :: (MonadLogger m, MonadUnliftIO m, IsSqlBackend backend) => SqliteConnectionInfo -> Int -> m (Pool backend) Source #
Create a pool of SQLite connections.
Note that this should not be used with the :memory:
connection string, as
the pool will regularly remove connections, destroying your database.
Instead, use withSqliteConn
.
Since: persistent-sqlite-2.6.2
module Database.Persist.Sql
data SqliteConf Source #
Information required to setup a connection pool.
Instances
Show SqliteConf Source # | |
Defined in Database.Persist.Sqlite showsPrec :: Int -> SqliteConf -> ShowS # show :: SqliteConf -> String # showList :: [SqliteConf] -> ShowS # | |
FromJSON SqliteConf Source # | |
Defined in Database.Persist.Sqlite parseJSON :: Value -> Parser SqliteConf # parseJSONList :: Value -> Parser [SqliteConf] # | |
PersistConfig SqliteConf Source # | |
Defined in Database.Persist.Sqlite type PersistConfigBackend SqliteConf :: (* -> *) -> * -> * # type PersistConfigPool SqliteConf :: * # loadConfig :: Value -> Parser SqliteConf # applyEnv :: SqliteConf -> IO SqliteConf # createPoolConfig :: SqliteConf -> IO (PersistConfigPool SqliteConf) # runPool :: MonadUnliftIO m => SqliteConf -> PersistConfigBackend SqliteConf m a -> PersistConfigPool SqliteConf -> m a # | |
type PersistConfigPool SqliteConf Source # | |
Defined in Database.Persist.Sqlite | |
type PersistConfigBackend SqliteConf Source # | |
Defined in Database.Persist.Sqlite |
data SqliteConnectionInfo Source #
Information required to connect to a sqlite database. We export lenses instead of fields to avoid being limited to the current implementation.
Since: persistent-sqlite-2.6.2
Instances
Show SqliteConnectionInfo Source # | |
Defined in Database.Persist.Sqlite showsPrec :: Int -> SqliteConnectionInfo -> ShowS # show :: SqliteConnectionInfo -> String # showList :: [SqliteConnectionInfo] -> ShowS # | |
FromJSON SqliteConnectionInfo Source # | |
Defined in Database.Persist.Sqlite parseJSON :: Value -> Parser SqliteConnectionInfo # parseJSONList :: Value -> Parser [SqliteConnectionInfo] # |
mkSqliteConnectionInfo :: Text -> SqliteConnectionInfo Source #
Creates a SqliteConnectionInfo from a connection string, with the default settings.
Since: persistent-sqlite-2.6.2
:: (MonadUnliftIO m, IsSqlBackend backend) | |
=> Text | connection string |
-> ReaderT backend (NoLoggingT (ResourceT m)) a | database action |
-> m a |
A convenience helper which creates a new database connection and runs the
given block, handling MonadResource
and MonadLogger
requirements. Note
that all log messages are discarded.
Since: persistent-sqlite-1.1.4
:: (MonadUnliftIO m, IsSqlBackend backend) | |
=> SqliteConnectionInfo | |
-> ReaderT backend (NoLoggingT (ResourceT m)) a | database action |
-> m a |
A convenience helper which creates a new database connection and runs the
given block, handling MonadResource
and MonadLogger
requirements. Note
that all log messages are discarded.
Since: persistent-sqlite-2.6.2
wrapConnection :: IsSqlBackend backend => Connection -> LogFunc -> IO backend Source #
Wrap up a raw Connection
as a Persistent SQL Connection
.
Since: persistent-sqlite-1.1.5
wrapConnectionInfo :: IsSqlBackend backend => SqliteConnectionInfo -> Connection -> LogFunc -> IO backend Source #
Wrap up a raw Connection
as a Persistent SQL
Connection
, allowing full control over WAL and FK constraints.
Since: persistent-sqlite-2.6.2
mockMigration :: Migration -> IO () Source #
Mock a migration even when the database is not present.
This function performs the same functionality of printMigration
with the difference that an actual database isn't needed for it.