I have literally spun up a barebones Rails app just to manage my schema and migrations for a completely separate Python/PostgreSQL project before.
https://guides.rubyonrails.org/v5.2/active_record_migrations...
I have literally spun up a barebones Rails app just to manage my schema and migrations for a completely separate Python/PostgreSQL project before.
https://guides.rubyonrails.org/v5.2/active_record_migrations...
[0] https://docs.djangoproject.com/en/2.2/topics/migrations/
Large open source projects such as GitLab source code are also treasures to discover migration rules.
If you have a millions of users with high traffic tables you may want to check some migration guides for downtime, data migrations and batch processing here https://docs.gitlab.com/ee/development/migration_style_guide...
If you want to have some concurrent ways of DDL operations you may benefit from https://gitlab.com/gitlab-org/gitlab/blob/master/lib%2Fgitla...
One of the points was that migrations should always be reversible. I’ve struggled with this in the past when it comes to migrations that change or drop data. How do you write a downgrade script that recalls the previous data?
I’ve given up with downgrades now. I make sure to take a dB backup or snapshot before running an upgrade. I’ve never had to test this solution in a tense situation though...
Why do you think no other toolchain has come close to this for other languages or frameworks? It’s a very common problems that needs a solution no matter what you are building and what you are building it on.
- Database-First
- Code-First
Create an SQL project that defines the schema. It automatically compares the schema with your current dB schema and auto generates a migration script for you.
Then update entities from the dB.
Few steps involved but avoids writing and maintaing migrations yourself.
I don't want to go back to any sort of migrations outside of this.