Tek bir Rails geçiş dosyasında birden çok tabloyu değiştirmek kötü bir form mu?


11

Aşağıdaki kodla bir taşıma dosyası yazdım:

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

Her değişiklik için bir tane olmak üzere iki geçiş dosyası oluşturmamak kötü bir biçim midir, yoksa bu iyi midir?


Bu benim aynı sorum gibi görünüyordu ... ama neredeyse tüm modellerimize bir "updated_by" alanı eklemek istiyoruz. Bunu sadece tek bir AddUpdatedByToMostObjects geçişinde yapabilir miyiz?
Alien Life Form

Yanıtlar:


10

İlgili değişiklikleri bir arada tutmak istiyorsunuz. Örneğin, çift yönlü ilişki uygular ve AR ilişkilerinin yeterli olması için sütunlar / tablolar eklerseniz, bunları bir geçişte tutmak istersiniz.

Şemadaki değişiklikler birbiriyle ilişkili değilse (örneğin, farklı özelliklerin parçaları) bunları ayrı taşımalarda tutmak daha iyidir.

Emin olmadığımda zihinsel bir deney yaparım. Mümkün olan en küçük parçalar için göçü ayırmaya çalışıyorum ve sonra parçalardan sadece birini kaldırırsam özelliğimin hala çalışıp çalışmadığını kontrol ediyorum. Eğer öyleyse bu parça muhtemelen bu göçe ait değildir.

Seninki bana iki göçe ayrılabilirmiş gibi bakıyor. Burada iki özelliğiniz var gibi görünüyor. Biri oyuncular için zaman çizelgeleri eklemek, diğeri de zaman çizelgelerine koç eklemek için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.