🌿 What?
- 🌱 Rails cung cấp method
ignored_columnsđể xóa tạm thời một cột trong DB, sau khi sửa logic xong xuôi chúng ta mới thực hiện migrate, tránh việc migrate đi migrate lại, deploy nhiều lần(nếu cột đã có trên môi trường STG/PROD).
🌿 How?
- 🌱 Step 1️⃣: Set ignore cột cần xóa trong model.
class User < ActiveRecord::Base
self.ignored_columns = [:username]
end- 🌱 Step 2️⃣: Kiểm tra xem cột
usernameđã được xóa tạm thời chưa.
User.first.username
=> raises exception NoMethodError-
🌱 Step 3️⃣: Thay đổi logic code liên quan đến trường
username. -
🌱 Step 4️⃣: Deploy lên các môi trường, test/fix những “lỗi lầm” nếu có.
-
🌱 Step 5️⃣: Thêm migrate xóa cột
username.
🌿 Refer
🌵 https://newsletter.shortruby.com/p/how-to-safely-remove-a-column-in