ghost_adapter
Large Hadron Migrator
ghost_adapter | Large Hadron Migrator | |
---|---|---|
2 | 3 | |
18 | 1,818 | |
- | 0.3% | |
1.5 | 0.0 | |
5 days ago | 8 months ago | |
Ruby | Ruby | |
GNU General Public License v3.0 or later | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ghost_adapter
-
Changing Tires at 100mph: A Guide to Zero Downtime Migrations
At least for Rails there are several gems available (ie https://github.com/WeTransfer/ghost_adapter or https://github.com/departurerb/departure) that seamlessly hook into the existing migration system and will run all eligible migrations through gh-ost or pt-osc as needed. You're right that it's not free but it isn't all that far off either.
That said, online schema migrations are a specialized tool designed for very big tables that take hours to run an ALTER TABLE on. If all your tables are small enough that alterations take less than a second or so, don't bother and just block the table for a bit. It's fine.
-
Database... or Goose?
https://github.com/WeTransfer/ghost_adapter integrates gh-ost with activerecord and the departure gem does the same but for pt-osc.
Large Hadron Migrator
-
GitHub downtime root cause analysis
No you didn't. They're doing what is often referred as "online schema change" using https://github.com/github/gh-ost (but the concept is the same than percona's pt-online-schema-change, or https://github.com/soundcloud/lhm.
-
Database... or Goose?
Is there anything similar for MySQL? There is https://github.com/soundcloud/lhm but it's pretty much outdated nowadays
-
Do you use migrations for data manipulations? What are the pro's and con's ?
I may do it from the console or a task if I wanted to modify a large number of records, e.g. something in my Users table. I think you need a sense of how long the update will take - I'm not sure if there's any issue with migrations timing out or such like. If I modify my Users schema it takes 5 minutes or so as it has to make a copy of the table and swap it in and that works fine - https://github.com/soundcloud/lhm
What are some alternatives?
strong_migrations - Catch unsafe migrations in development
Squasher - Squasher - squash your old migrations in a single command
safe-pg-migrations - Make your PostgreSQL migrations safe
Lol DBA - lol_dba is a small package of rake tasks that scan your application models and displays a list of columns that probably should be indexed. Also, it can generate .sql migration scripts.
wt_activerecord_index_spy - A gem to spy queries running with Active Record and report missing indexes
Foreigner - Adds foreign key helpers to migrations and correctly dumps foreign keys to schema.rb
Ruby on Rails - Ruby on Rails
BatchLoader - :zap: Powerful tool for avoiding N+1 DB or HTTP queries
database-lab-engine - DBLab enables 🖖 database branching and ⚡️ thin cloning for any Postgres database and empowers DB testing in CI/CD. This optimizes database-related costs while improving time-to-market and software quality. Follow to stay updated.
PgHero - A performance dashboard for Postgres
reshape - An easy-to-use, zero-downtime schema migration tool for Postgres
Seedbank - Seedbank gives your seed data a little structure. Create seeds for each environment, share seeds between environments and specify dependencies to load your seeds in order. All nicely integrated with simple rake tasks.