รูปแบบที่ไม่ดีคือการเปลี่ยนตารางหลายตารางในไฟล์การโยกย้าย Rails ไฟล์เดียวหรือไม่?


11

ฉันเขียนไฟล์การโยกย้ายพร้อมรหัสต่อไปนี้:

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

เป็นรูปแบบที่ไม่ถูกต้องหรือไม่ที่จะไม่สร้างไฟล์การโยกย้ายสองไฟล์หนึ่งไฟล์สำหรับการเปลี่ยนแปลงแต่ละครั้ง


SEEMED นี้เหมือนกับคำถามเดียวกันของฉัน ... แต่เราต้องการเพิ่มฟิลด์ "updated_by" ในโมเดลเกือบทั้งหมดของเรา เราสามารถทำสิ่งนี้ในการโยกย้ายครั้งเดียว AddUpdatedByToMostObjects ได้หรือไม่
Alien Life Form

คำตอบ:


10

คุณต้องการเก็บการเปลี่ยนแปลงที่เกี่ยวข้องไว้ด้วยกัน ตัวอย่างเช่นหากคุณใช้ความสัมพันธ์แบบสองทิศทางและเพิ่มคอลัมน์ / ตารางเพื่อให้มีความสัมพันธ์แบบ AR เพียงพอคุณต้องการเก็บไว้ในการโยกย้ายครั้งเดียว

หากการเปลี่ยนแปลงในสคีมานั้นไม่เกี่ยวข้องกัน (เช่นส่วนของคุณลักษณะที่แตกต่างกัน) จะเป็นการดีกว่าหากต้องการเก็บไว้ในการย้ายข้อมูลแยกต่างหาก

ฉันทำการทดลองทางจิตเมื่อฉันไม่แน่ใจ ฉันพยายามแยกชิ้นส่วนที่เล็กที่สุดเท่าที่จะเป็นไปได้แล้วตรวจสอบว่าคุณสมบัติของฉันยังใช้งานได้หรือไม่หากฉันถอดชิ้นส่วนชิ้นเดียวออก หากเป็นไปได้ว่าชิ้นส่วนนั้นไม่ได้เป็นของการโยกย้ายนี้

คุณมองฉันว่ามันสามารถแบ่งออกเป็นสองการโยกย้าย ดูเหมือนว่าคุณมีคุณสมบัติสองอย่างที่นี่ หนึ่งคือเกี่ยวกับการเพิ่มตารางเวลาสำหรับผู้เล่นและอีกหนึ่งสำหรับการเพิ่มโค้ชในตาราง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.