The code was written by the professionals for educational purposes. Don't repeat at home.
npm install
- create
.env
file, copy values from.example.env
npm run docker:dev:db
(runs database in docker container)npm run migrate:latest && npm run seed
(run only once, next time you start the server - skip this step)npm run dev
npm run docker:test
- Download and install the official Postgres v.12 package for your OS - https://www.postgresql.org/download/
- Using a DB observer tool (PGAdmin, Dbeaver, etc.) create a database
- Update the
.env
with the relevant values:DATABASE_PORT
(default during installation is5432
)DATABASE_NAME
(name of a newly created database)DATABASE_USER
(default username during installation ispostgres
)DATABASE_ACCESS_KEY
(password to thepostgres
user, which was also set during installation)
- apply the migrations:
npm run migrate:latest && npm run seed
(run only once, next time you start the server - skip this step) - run the test and verify that the DB instance can be reached and everything passes:
npm run test
- run the server:
npm run dev
- Issue: running the
npm run docker:test
command fails with:
1 error occurred:
* checking context: can't stat ...
- Solution: run
sudo chown -R $USER .docker_pgdata_test/
in terminal, while on the repo top level - Another solution: drop all related existing containers and re-run the command
- Issue: running the
npm run docker:test
command fails with:
failed to solve: failed to solve with frontend dockerfile.v0: failed to build LLB:
error from sender:
open ./lecture-starter-backend-structure/.docker_pgdata: permission denied
- Solution: apparently, the
docker:dev:db
command was invoked before, which conflicts with the previously created container data. Simply delete the pg related foldersudo rm -rf ./docker_pgdata