Originally taken from: Braintree Article and expanded on by me.
- Add a new column
- Drop a column
- Rename a column
- Add an index concurrently (Example), Note: it will still take a long time to run the migration, but it won't write-lock the table.
- Drop a constraint (for example, non-nullable)
- Add a default value to an existing column