typeorm-postgres-example
Demonstrates using TypeORM with PostgreSQL in a Node app. It does not demonstrate creating the web app itself, except for a comment in the src/index.ts
file showing where the app's "main" code would go. This example's purpose is to show how to set up a declarative development environment where team members (or you, in the future) would not need to run manual SQL commands for the local development database to match. Instead, the dbseed
task (implemented as a TypeScript file compiled and executed by the build
NPM task), takes care of ensuring the running database has the required SQL schema and that it is populated with test data.
System Prerequisites
- Node 14.x+
- Docker and docker-compose
Models
There are three models in this example:
- Doctor
- Patient
- Appointment (junction model between Doctor and Patient)
First run
- Run
npm install
to install local dependencies. - Run
docker-compose up -d
to create and start the required Docker containers for the PostgreSQL database. - Run
npm run build
to compile the code, including tasks. - Run
npm run dbseed
to insert the seed data into the running PostgreSQL database. Note that since the task is coded in TypeScript, it must be compiled first. Therefore, this npm script runs the build npm script first before running the dbseed task.
Next runs
These steps assume you have the docker-compose stack running.
After changing source code
- Run
npm run build
to compile the source code. - Run
npm start
to start the app.
After changing seed data
- Run
npm run dbseed
to compile the source code and insert the seed data into the running PostgreSQL database. - Run
npm start
to start the app.