/sumo_db_pgsql

PostgreSQL adapter for sumo_db.

Primary LanguageErlangApache License 2.0Apache-2.0

sumo_db_pgsql

About

This is the PostgreSQL adapter for sumo_db.

PosgreSQL

Install PostgreSQL

To install PostgreSQL please follow the instructions in this link: Installing PostgreSQL.

Getting Started

To start using sumo_db with this PostgreSQL adapter sumo_db_pgsql is pretty easy, you just have to follow these steps:

  1. Add sumo_db and sumo_db_pgsql as dependencies in your project.

    Using Rebar3:

    {deps, [
      {sumo_db_pgsql, "0.1.1"}
    ]}.
  2. You need at least one doc/entity, let's use sumo_test_people_pgsql 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.

  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

$ REBAR_PROFILE=test rebar3 shell --config=test/test.config

Within the console:

> application:ensure_all_started(sumo_db_pgsql).
12:02:00.250 [info] Application lager started on node nonode@nohost
12:02:00.250 [info] Application crypto started on node nonode@nohost
12:02:00.251 [info] Application asn1 started on node nonode@nohost
12:02:00.251 [info] Application public_key started on node nonode@nohost
12:02:00.251 [info] Application ssl started on node nonode@nohost
12:02:00.252 [info] Application epgsql started on node nonode@nohost
12:02:00.256 [info] Application sasl started on node nonode@nohost
12:02:00.256 [info] Creating wpool ETS table
12:02:00.256 [info] Application worker_pool started on node nonode@nohost
12:02:00.256 [info] Application quickrand started on node nonode@nohost
12:02:00.256 [info] Application uuid started on node nonode@nohost
12:02:00.337 [info] Application sumo_db started on node nonode@nohost
12:02:00.341 [info] Application sumo_db_pgsql started on node nonode@nohost
{ok,[syntax_tools,compiler,goldrush,lager,crypto,asn1,
     public_key,ssl,epgsql,sasl,worker_pool,quickrand,uuid,
     sumo_db,sumo_db_pgsql]}

% from here you can start using sumo

> sumo:find_all(people).
[]

Running Tests

A PostgreSQL instance is needed to run the tests. If Docker (and Docker Compose) is an option, a PostgreSQL server can be run executing the following commands (assuming the current/working directory is the project's root):

$ docker-compose up -d

After this is completed, a similar result should be displayed:

$ docker-compose ps
      Name                    Command              State           Ports
---------------------------------------------------------------------------------
sumodbpgsql_db_1   docker-entrypoint.sh postgres   Up      0.0.0.0:5432->5432/tcp

If Docker (and Docker Compose) is not an alternative, install PostgreSQL (refer to Install PostgreSQL) and make sure to:

  • Create a postgres user (with postgres as password).
  • Create a test sumo_test database.

NOTE: Alternatively, use PostgreSQL defaults and make sure to modify/update test/test.config accordingly.

Then run:

$ rebar3 ct

Contact Us

If you find any bugs or have a problem while using this library, please open an issue in this repo (or a pull request :)).