Đây có phải là hình thức xấu để thay đổi nhiều bảng trong một tệp di chuyển Rails không?


11

Tôi đã viết một tệp di chuyển với mã sau đây:

class AddScheduleIdToPlayers < ActiveRecord::Migration
  def change
        add_column :players, :schedule_id, :integer
        add_column :schedules, :coach_id, :integer
  end
end

Đây có phải là hình thức xấu khi không tạo hai tệp di chuyển, một tệp cho mỗi thay đổi hoặc điều này có ổn không?


Điều này giống như câu hỏi tương tự của tôi ... nhưng chúng tôi muốn thêm trường "update_by" vào gần như tất cả các mô hình của chúng tôi. Chúng ta có thể làm điều này trong một lần di chuyển AddUpdatedByToMostObjects không?
Cuộc sống ngoài hành tinh

Câu trả lời:


10

Bạn muốn giữ những thay đổi liên quan với nhau. Ví dụ: nếu bạn triển khai quan hệ hai chiều và thêm các cột / bảng để đủ các mối quan hệ AR bạn muốn giữ các mối quan hệ đó trong một lần di chuyển.

Nếu các thay đổi trong lược đồ không liên quan đến nhau (ví dụ như các phần của các tính năng khác nhau), tốt hơn hết là giữ chúng trong các lần di chuyển riêng biệt.

Tôi làm một thí nghiệm tinh thần khi tôi không chắc chắn. Tôi cố gắng phá vỡ di chuyển cho các phần nhỏ nhất có thể và sau đó kiểm tra xem tính năng của tôi có còn hoạt động không nếu tôi chỉ gỡ xuống một trong các phần. Nếu đó là mảnh đó có khả năng không thuộc về di chuyển này.

Nhìn tôi như thể nó có thể được chia thành hai lần di chuyển. Dường như bạn có hai tính năng ở đây. Một là về việc thêm lịch trình cho người chơi và một là để thêm huấn luyện viên vào lịch trình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.