# sumo_db_mysql
# About
This is the [MySQL](http://dev.mysql.com/downloads/mysql/) adapter for [sumo_db](https://github.com/inaka/sumo_db).
## MySQL
### Install MySQL
To install/upgrade **MySQL** please follow the instructions in this link:
[Installing and Upgrading MySQL](http://dev.mysql.com/doc/refman/5.7/en/installing.html).
## Getting Started
To start using `sumo_db` with this MySQL adapter `sumo_db_mysql` is pretty easy, you just
have to follow these steps:
1. Add `sumo_db` and `sumo_db_mysql` as dependencies in your project.
Using **erlang.mk**:
```erlang
DEPS = sumo_db sumo_db_mysql
dep_sumo_db = git https://github.com/inaka/sumo_db.git 0.5.0
dep_sumo_db_mysql = git https://github.com/inaka/sumo_db_mysql.git 0.0.1
```
Using **Rebar**:
```erlang
{deps, [
{sumo_db, {git, "https://github.com/inaka/sumo_db.git", {tag, "0.5.0"}}},
{sumo_db_mysql, {git, "https://github.com/inaka/sumo_db_mysql.git", {tag, "0.0.1"}}}
]}.
```
2. You need at least one doc/entity, let's use [sumo_test_people_mysql](./test/sumo_test_people_mysql.erl)
as example.
> NOTE: if you use this entity, you'll need to include `mixer` to the dependencies list
3. Provide the configuration file, e.g.: [test.config](./tests/test.config).
> NOTE: if you use this config, you'll need to change `sumo_test_store` to `sumo_store_mysql`
4. Now you can run your app and start using `sumo` from there.
### Running sumo from Erlang console
Start the Erlang console, adding the path to your beams and config file
$ erl -pa ebin deps/*/ebin -config tests/test.config
Within the console:
```erlang
> sumo_db_mysql:start().
16:50:45.934 [info] Application lager started on node nonode@nohost
16:50:45.951 [info] Application crypto started on node nonode@nohost
16:50:45.966 [info] Application emysql started on node nonode@nohost
16:50:46.024 [info] Application sasl started on node nonode@nohost
16:50:46.032 [info] Creating wpool ETS table
16:50:46.033 [info] Application worker_pool started on node nonode@nohost
16:50:46.037 [info] Application quickrand started on node nonode@nohost
16:50:46.038 [info] Application uuid started on node nonode@nohost
16:50:46.146 [info] Application sumo_db started on node nonode@nohost
16:50:46.146 [info] Application sumo_db_mysql started on node nonode@nohost
{ok,[syntax_tools,compiler,goldrush,lager,crypto,emysql,
sasl,worker_pool,quickrand,uuid,sumo_db,sumo_db_mysql]}
% from here you can start using sumo
> sumo:find_all(people).
[]
```
## Running Tests
- Create a user (or use defaults) and configure it on `test/test.config` file.
- Create test database `sumo_test`
## Contact Us
For **questions** or **general comments** regarding the use of this library,
please use our public [hipchat room](http://inaka.net/hipchat).
If you find any **bugs** or have a **problem** while using this library, please
[open an issue](https://github.com/inaka/sumo_db_mysql/issues/new) in this repo (or a pull request :)).
And you can check all of our open-source projects at
[inaka.github.io](http://inaka.github.io)