gynger v1.0.0
Gynger
For Local Development
Install all the dependencies
npm install
Generate necessaary types
prisma generate
This will also generate types for type-graphql. These are stored in the node_modules folder under @generated/type-graphql.
Running Locally
You must have docker and docker-compose installed. To run the application simply run npm start and this will spin up a postgres docker and the node docker container.
npm start
If any changes are made to prisma.schema you will need to re-generate the types. Since docker has its own versions of this you will need to rebuild the docker image.
docker-compose build prisma
Deploying Infra
Infra is all setup through terraform. For staging run the following from inside infra/
terraform workspace set staging
terraform apply -var-file="staging.tfvars"
You will need to manually enable firebase auth to get this to work.
Deploy App
gcloud app deploy app.staging.yaml
cloud_sql_proxy -instances=gynger-staging:us-central1:gynger-database-instance=tcp:3307
Resetting the DB
# Delete all users first
# SET the GOOGLE_APPLICATION_CERDENTIALS
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/file
node -r ts-node/register bin/delete-all-users.ts
# REMOVE FIREBASE_AUTH
prisma migrate reset
prisma seed
In case you accidentally run db reset on staging you need to re-add the api user
GRANT USAGE ON SCHEMA public TO api;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO api;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO api;
Prod DB Connection
# the format should be
DATABASE_URL=postgresql://username:password@localhost/gynger-db?schema=public&host=/cloudsql/gynger-staging:us-central1:gynger-database-instance
Running Seed In Prod
You need to download a key from firebase then set the keypath in the defualt config under clients.google.keypath
2 years ago