Re:Terraform should have remained stateless
by zlumer on Saturday May 28, 2022 @02:58AM
(#31538197)
We're doing something similar using Prisma.
We have a script that queries Postgres database periodically and generates a Prisma schema for the tables/columns.
Then the script diffs previous schema with a newer one and if any changes are detected, it creates an SQL migration and commits it to the git repo.
That way we have a history of all changes in a very readable way, and an always up-to-date Prisma schema and TypeScript typings for the DB client.
[ Parent
| on HN ]
Re:Terraform should have remained stateless
by pharmakom on Saturday May 28, 2022 @03:14AM
(#31538278)
Uhhh shouldn’t that be the other way around? You should write the migrations and commit them to Git THEN apply them to the database after review?
If you describe the workflow for the production DB, then yes, that's exacly how it works.
But we also need a way to fiddle with the dev environment, while keeping track of everything that happened during development phase and making sure that it can be applied to the production DB in a single command with little room for errors.
Having a git repo in sync with the DB and a full history of changes in commit log helps a lot.