Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions docs/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,21 @@ $ yarn # or (yarn install)
```

## Database

* Install [postgres](https://www.postgresql.org/) and [pgAdmin](https://www.pgadmin.org/)
* Create new database called *reactseeddb*. Use following credentials:
* user: `postgres`
* password: `Password.01`
You can install Postgres or run your server in a Docker container.
### Postgres
* Install [postgres](https://www.postgresql.org/). When prompted to enter the `postgres` user password, use `sa.pg.01` or one of your choice. Make sure to update the password in `server/datastore/create/knexfile.js` if you picked a different password.
* For more information about setting up the server see [official docs](https://wiki.postgresql.org/wiki/First_steps)
### Docker
* Install [Docker](https://docs.docker.com/engine/installation/) and [docker-compose](https://docs.docker.com/compose/install/)
* Run `yarn database:docker-server` to create the docker container for the SQL Server (volume to persist data will be mounted)

Once you have configured your Postgres server, run the following commands:
* Create the `reactseeddb` database, `pg` user and grant access to database:
* `yarn database:create`
* Create tables running migrations:
* `yarn run migrate:latest`
* `yarn migrate:latest`
* Populate database running the seeds:
* `yarn run seed:run`
* `yarn seed:run`


## Start the app
Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
"coveralls": "npm run test:coverage && cat ./client/coverage/lcov.info | coveralls",
"tdd": "cd client && npm run tdd",
"serve": "npm run build && http-server build/ -p 8081",
"database:docker-server": "cd server && npm run database:docker-server",
"database:create": "cd server && npm run database:create",
"migrate:make": "cd server && npm run migrate:make",
"migrate:latest": "cd server && npm run migrate:latest",
"migrate:rollback": "cd server && npm run migrate:rollback",
Expand Down
5 changes: 0 additions & 5 deletions server/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,4 @@ yarn run seed:make
yarn run seed:run
```

## Tools and Config.

* [PostgreSQL](https://www.postgresql.org/)
* [pgAdmin](https://www.pgadmin.org/)

### [Setup info here](../docs/setup.md)
2 changes: 1 addition & 1 deletion server/config/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const commonConfig = {
database: {
connectionString: process.env.DATABASE_URL || 'postgres://postgres:Password.01@localhost:5432/reactseeddb'
connectionString: process.env.DATABASE_URL || 'postgres://pg:pg@localhost:5432/reactseeddb'
},
port: 3000,
sslPort: 4443
Expand Down
16 changes: 16 additions & 0 deletions server/datastore/create/knexfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
const path = require('path');

const connection = {
client: 'postgresql',
connection: {
host: 'localhost',
user: 'postgres',
password: 'sa.pg.01',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

update docs (setup.md) with initial db crendentials

database: 'postgres'
},
seeds: {
directory: path.resolve(__dirname, './seeds')
}
};

module.exports = connection;
11 changes: 11 additions & 0 deletions server/datastore/create/seeds/create.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
exports.seed = function(knex) {
const db = 'reactseeddb';
const user = 'pg';
const pass = 'pg';

const createDb = () => knex.raw(`CREATE DATABASE ${db}`);
const createUser = () => knex.raw(`CREATE USER ${user} WITH PASSWORD '${pass}'`);
const grantUserToDb = () => knex.raw(`GRANT ALL ON DATABASE ${db} TO ${user}`);

return createDb().then(createUser).then(grantUserToDb);
};
14 changes: 14 additions & 0 deletions server/datastore/server/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
version: '2'

services:
postgres:
image: postgres
environment:
- POSTGRES_PASSWORD=sa.pg.01
volumes:
- data:/var/lib/postgresql/data
ports:
- "5432:5432"

volumes:
data:
2 changes: 1 addition & 1 deletion server/datastore/stores/base.store.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const knexfile = require('../postgres/knexfile');
const knexfile = require('../connection/knexfile');
const Knex = require('knex')(knexfile);

const PostgresErrors = require('../constants/postgres-errors');
Expand Down
12 changes: 7 additions & 5 deletions server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
"scripts": {
"start": "node index.js",
"dev": "nodemon app.dev.js",
"migrate:make": "knex migrate:make --knexfile ./datastore/postgres/knexfile.js",
"migrate:latest": "knex migrate:latest --knexfile ./datastore/postgres/knexfile.js",
"migrate:rollback": "knex migrate:rollback --knexfile ./datastore/postgres/knexfile.js",
"seed:make": "knex seed:make --knexfile ./datastore/postgres/knexfile.js",
"seed:run": "knex seed:run --knexfile ./datastore/postgres/knexfile.js",
"database:docker-server": "docker-compose --file datastore/server/docker-compose.yml up -d",
"database:create": "knex seed:run --knexfile ./datastore/create/knexfile.js",
"migrate:make": "knex migrate:make --knexfile ./datastore/connection/knexfile.js",
"migrate:latest": "knex migrate:latest --knexfile ./datastore/connection/knexfile.js",
"migrate:rollback": "knex migrate:rollback --knexfile ./datastore/connection/knexfile.js",
"seed:make": "knex seed:make --knexfile ./datastore/connection/knexfile.js",
"seed:run": "knex seed:run --knexfile ./datastore/connection/knexfile.js",
"test": "tape tests/*.js | tap-spec"
},
"dependencies": {
Expand Down