README.md

# Postgres Raw SQL Executor for Elixir

A simple utility to execute SQL files against a Postgres database using the `psql` command-line interface. Useful when you need to execute multi-statement SQL. More information in this blog post (TODO).

## Installation

1. Add `postgres_executor` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:postgres_executor, "~> 0.2.3"}
  ]
end
```

2. Run `mix deps.get` to fetch the dependency.

## Usage

Here's a basic example of how to use the `PostgresExecutor`:

```elixir
# Execute an SQL file against a Postgres database
{:ok, result} = PostgresExecutor.execute_sql_file("postgres://postgres:postgres@localhost:5432/mydb", "priv/path_to_file.sql")
```

### Configuration

Make sure you have `psql` command-line utility installed and accessible from your environment. There is no error detection for this case.

## Testing

Mocking has been set up for easy testing. Use the included mock utilities to write your tests without actually hitting a Postgres database.

To update the audit trigger SQL:

```shell
http https://raw.githubusercontent.com/iloveitaly/audit-trigger/master/audit.sql > test/audit_trigger.sql
```

## Contributing

1. Fork the repository on GitHub.
2. Clone the forked repo and make your changes.
3. Submit a pull request to the main branch.

All contributions are welcomed!

## License

MIT License. See [LICENSE](LICENSE) for more details.

## TODO

- [ ] tests (I'm lazy)
- [ ] check if psql is installed