Недавно мне пришлось изменить точность столбца в таблицах PostgreSQL.
Таблица довольно большая (10M + строк).
Итак, я сделал это с миграцией рельсов:
change_column(:my_table, :amount, :decimal, precision: 30, scale: 8, default: 0.0)
Какие преобразования в этот SQL:
ALTER TABLE "my_table" ALTER COLUMN "amount" TYPE decimal(30,8)
Все хорошо, кроме как повесить базу данных на 15 минут. Как я понимаю, данные не нужно менять во время миграции, но я думаю, PostgreSQL все равно переписывал строки.
Есть ли способ, чтобы PostgreSQL переписывал только строки, когда я обновлял их, а не выполнял массовую перезапись при изменении точности столбцов, как это?