Apakah ini bentuk yang buruk untuk mengubah beberapa tabel dalam satu file migrasi Rails?


11

Saya menulis file migrasi dengan kode berikut:

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

Apakah ini bentuk yang buruk untuk tidak membuat dua file migrasi, satu untuk setiap perubahan, atau apakah ini baik-baik saja?


TAMPAKNYA ini seperti pertanyaan saya yang sama ... tapi kami ingin menambahkan bidang "updated_by" ke hampir semua model kami. Bisakah kita melakukan ini dalam satu migrasi AddUpdatedByToMostObjects?
Alien Life Form

Jawaban:


10

Anda ingin menyimpan perubahan terkait bersama. Misalnya, jika Anda menerapkan relasi dua arah dan menambahkan kolom / tabel untuk mencukupi hubungan AR, Anda ingin menyimpannya dalam satu migrasi.

Jika perubahan dalam skema tidak terkait satu sama lain (bagian dari fitur yang berbeda, misalnya) lebih baik menyimpannya dalam migrasi terpisah.

Saya melakukan percobaan mental ketika saya tidak yakin. Saya mencoba untuk memecah migrasi untuk bagian terkecil yang mungkin dan kemudian memeriksa apakah fitur saya masih berfungsi jika saya hanya mencatat salah satu bagian. Jika itu bagian itu kemungkinan bukan milik migrasi ini.

Anda melihat saya seperti dapat dibagi menjadi dua migrasi. Sepertinya Anda memiliki dua fitur di sini. Salah satunya adalah tentang menambahkan jadwal untuk pemain dan yang lainnya untuk menambahkan pelatih ke jadwal.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.