An intro to SQL databases for building web apps.
Start by following the workshop notes in workshop/README.md. It'll guide you through relational database concepts (creating tables, inserting data, querying, one-to-many and many-to-many relationships, JOINs) and then explain how to integrate a SQL database into your Node app (migrations, query builders, and API routes).
This repo also contains a Node/Express app with PostgreSQL set up. Here's what the files do:
router.js - Where API endpoints are defined. Most of the interesting logic is here.
app.js - Standard Express app setup
docker-compose.yml - Docker file which specifies how to run Node and Postgres
package.json - Contains scripts to build/run app and manage DB migrations
db/knexfile.js - Knex database configuration
db/migrations/ - Folder containing database migrations (e.g. CREATE TABLE statements)
db/seeds/ - Folder containing seed data
Install docker: https://www.docker.com/products/docker-desktop
yarn install
yarn run build
Start the docker app in a terminal window. This will run the Postgres database and the Node app at localhost:3001.
yarn start
In a separate terminal window, set up the database:
yarn run db:setup
To get a psql shell, first make sure yarn start
is running in a separate terminal. Then:
yarn run db:shell
To generate a new migration with Knex, run:
yarn run db:migrate:make YOUR_MIGRATION_NAME
To execute your migrations, first make sure yarn start
is running in a separate terminal. Then:
yarn run db:migrate