# Moebius v5.0.0 - Table of Contents

> A functional approach to data access with Elixir

## Pages

- [Moebius](readme.md)
- [Changelog](changelog.md)
- [Contributing to Moebius](contributing.md)
- [LICENSE](license.md)

## Modules

- [Moebius](Moebius.md): Helpers for connection config and SQL scripts. The query builders are in
`Moebius.Query` and `Moebius.DocumentQuery`; running them is `Moebius.Database`.
- [Moebius.CommandBatch](Moebius.CommandBatch.md)
- [Moebius.Connection](Moebius.Connection.md): The handle `transaction/1` passes to your callback.
- [Moebius.Database](Moebius.Database.md): Turns a module into a database you can run commands against.
- [Moebius.Db](Moebius.Db.md): A ready-made database module that reads `config :moebius, connection: [...]`. Add it to
your supervision tree, or define your own with `use Moebius.Database`.

- [Moebius.DocumentCommand](Moebius.DocumentCommand.md)
- [Moebius.DocumentQuery](Moebius.DocumentQuery.md): If you like your Postgres doing document goodness, then you'll want to use this interface. Just include it in your module
and you can work directly with JSONB in PostgreSQL. We've tried to keep reasonable parity with
the Query interface, but there are some concepts here that are a bit different.
- [Moebius.Identifier](Moebius.Identifier.md): Checks the table, column and function names Moebius puts into SQL.
- [Moebius.Query](Moebius.Query.md): The main query interface for Moebius. Import this module into your code and query like a champ

- [Moebius.QueryCommand](Moebius.QueryCommand.md): Struct for the query command which is piped through all the transforms

- [Moebius.QueryFilter](Moebius.QueryFilter.md): 
The QueryFilter module is used to build WHERE clauses to be used in queries. You can
call it directly but in most cases it will be used through the Query module (see Query module).
- [Moebius.Result](Moebius.Result.md): The raw result of one statement, before Moebius turns rows into maps.
- [Moebius.Transformer](Moebius.Transformer.md): Turns query results into what Moebius returns: maps with atom keys, `{:ok, value}` or
`{:error, message}`.

- Exceptions
  - [Moebius.Error](Moebius.Error.md): An error from Postgres, the driver or the pool.

## Mix Tasks

- [mix moebius.create](Mix.Tasks.Moebius.Create.md): Creates the database named in the `:connection` config

- [mix moebius.drop](Mix.Tasks.Moebius.Drop.md): Drops the database named in the `:connection` config

- [mix moebius.migrate](Mix.Tasks.Moebius.Migrate.md): Rebuilds the test database's tables from `test/db/tables.sql`. Test environment only.

- [mix moebius.seed](Mix.Tasks.Moebius.Seed.md): Loads the test data in `test/db/seeds.sql`. Test environment only.

