Комментарии 5
Разве drop table/column будет безопасной операцией, если вы говорите что хотите поддерживать работу старых машин которые ещё не успели обновиться?
0
тоже смутило.
хотя ежели проверками все обвесить.
хотя ежели проверками все обвесить.
0
Минимум на чём пробовал — postgres 9.4, более старые чесно говоря не смотрел. Не подскажите на какой версии это не работает?
На 9.4+ если с таблицей никто не работает, то можно считать операцию безопасной, иначе зачем удалять. Если с колонкой никто не работает, то тоже можно считать безопасной, так как отрабатывает мгновенно, согласно документации www.postgresql.org/docs/current/static/sql-altertable.html колонка не удаляется физически, а помечается удалённй, потом место будет очищено через AUTO VACUUM.
При удалении таблицы/колонки все машинки сперва перестают работать с таблицей/колонкой, только потом накатывается миграция, назвал это обратным порядок выкатки в тексте.
На 9.4+ если с таблицей никто не работает, то можно считать операцию безопасной, иначе зачем удалять. Если с колонкой никто не работает, то тоже можно считать безопасной, так как отрабатывает мгновенно, согласно документации www.postgresql.org/docs/current/static/sql-altertable.html колонка не удаляется физически, а помечается удалённй, потом место будет очищено через AUTO VACUUM.
При удалении таблицы/колонки все машинки сперва перестают работать с таблицей/колонкой, только потом накатывается миграция, назвал это обратным порядок выкатки в тексте.
0
Мы хоть используем ruby on rails, но в целом у нас похожий подход:
В случае rename column
И так в прицнипе со всем, даже с таблицами, что-то новое, backfill + deploy бизнес логики и потом удаление. Можно конечно заметить, что старые инстансы будут еще работать со старой column/table, но в прицнипе backfill можно повторить.
В случае rename column
- Миграция по созданию новой column
- Backfill + изменение бизнес логики на работу с новой column ( deploy )
- Удаление column
И так в прицнипе со всем, даже с таблицами, что-то новое, backfill + deploy бизнес логики и потом удаление. Можно конечно заметить, что старые инстансы будут еще работать со старой column/table, но в прицнипе backfill можно повторить.
0
у варианта «С Даунтаймом» нужен грустный смалик.
-1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Миграция схемы базы данных без даунтайма для postgresql на примере django