คำถามติดแท็ก rails-migrations


7
เพิ่มการย้ายข้อมูลคอลัมน์อ้างอิงใน Rails 4
ผู้ใช้มีการอัปโหลดจำนวนมาก ฉันต้องการที่จะเพิ่มคอลัมน์ไปยังตารางที่อ้างอิงuploads userการโยกย้ายควรมีลักษณะอย่างไร นี่คือสิ่งที่ฉันมี ผมไม่แน่ใจว่าผมควรจะใช้ (1) :user_id, :intหรือ :user, :references(2) ฉันไม่แน่ใจด้วยซ้ำว่า (2) ใช้งานได้ เพียงแค่พยายามทำสิ่งนี้ด้วยวิธี "ทางรถไฟ" class AddUserToUploads < ActiveRecord::Migration def change add_column :uploads, :user_id, :integer end end คำถามที่เกี่ยวข้องยกเว้น Rails 3 Rails 3 migrations: การเพิ่มคอลัมน์อ้างอิง?

4
Rails migrations: เลิกทำการตั้งค่าเริ่มต้นสำหรับคอลัมน์
ฉันมีปัญหาว่าฉันมีการโยกย้ายใน Rails ที่ตั้งค่าการตั้งค่าเริ่มต้นสำหรับคอลัมน์เช่นตัวอย่างนี้: def self.up add_column :column_name, :bought_at, :datetime, :default => Time.now end สมมติว่าฉันต้องการปล่อยการตั้งค่าเริ่มต้นในการโยกย้ายในภายหลังฉันจะทำเช่นนั้นได้อย่างไรโดยใช้การโยกย้ายราง วิธีแก้ปัญหาปัจจุบันของฉันคือการเรียกใช้งานคำสั่ง sql แบบกำหนดเองในการย้ายข้อมูลรางแบบนี้: def self.up execute 'alter table column_name alter bought_at drop default' end แต่ฉันไม่ชอบวิธีการนี้เพราะตอนนี้ฉันขึ้นอยู่กับว่าฐานข้อมูลต้นแบบตีความคำสั่งนี้อย่างไร ในกรณีที่มีการเปลี่ยนแปลงของฐานข้อมูลแบบสอบถามนี้อาจไม่ทำงานอีกต่อไปและการโยกย้ายจะถูกทำลาย ดังนั้นมีวิธีแสดงการยกเลิกการตั้งค่าเริ่มต้นสำหรับคอลัมน์ในรางหรือไม่?

5
ตรวจสอบว่ามีตารางอยู่ใน Rails หรือไม่
ฉันมีงานเรคที่ไม่สามารถทำงานได้หากไม่มีตาราง ฉันทำงานกับวิศวกรมากกว่า 20 คนในเว็บไซต์ดังนั้นฉันต้องการตรวจสอบให้แน่ใจว่าพวกเขาได้ย้ายตารางก่อนที่พวกเขาจะสามารถทำงานคราดซึ่งจะเติมข้อมูลในตารางนั้น AR มีวิธีการเช่นนี้Table.existsหรือไม่? ฉันจะแน่ใจได้อย่างไรว่าพวกเขาย้ายข้อมูลตารางเรียบร้อยแล้ว

21
เพิ่มการประทับเวลาลงในตารางที่มีอยู่
ฉันต้องการเพิ่มการประทับเวลา ( created_at& updated_at) ลงในตารางที่มีอยู่ ฉันลองใช้รหัสต่อไปนี้ แต่มันไม่ทำงาน class AddTimestampsToUser < ActiveRecord::Migration def change_table add_timestamps(:users) end end


6
การระบุชื่อคอลัมน์ในการย้าย "การอ้างอิง"
ฉันต้องการสร้างmigrationใน Rails โดยอ้างอิงตารางอื่น โดยปกติฉันจะทำบางสิ่งเช่น: add_column :post, :user, :references สิ่งนี้สร้างคอลัมน์ที่ตั้งชื่อuser_idในpostsตาราง แต่สิ่งที่ถ้าแทนuser_idฉันต้องการสิ่งที่ชอบauthor_id? ฉันจะทำเช่นนั้นได้อย่างไร?

1
t.belongs_to และ t.references ในรางต่างกันอย่างไร?
อะไรคือความแตกต่างระหว่างt.referencesและt.belongs_to? ทำไมเราถึงมีสองคำที่แตกต่างกัน? ดูเหมือนว่าสำหรับฉันพวกเขาทำสิ่งเดียวกัน? พยายามค้นหาโดย Google แต่ไม่พบคำอธิบาย class CreateFoos < ActiveRecord::Migration def change create_table :foos do |t| t.references :bar t.belongs_to :baz # The two above seems to give similar results t.belongs_to :fooable, :polymorphic => true # I have not tried polymorphic with t.references t.timestamps end end end

4
วิธีสร้างการย้ายข้อมูลเพื่อสร้างความหลากหลายของการอ้างอิง
ฉันมีตารางผลิตภัณฑ์และต้องการเพิ่มคอลัมน์: t.references :imageable, :polymorphic => true ฉันพยายามสร้างการย้ายข้อมูลสำหรับสิ่งนี้โดยทำ: $ rails generate migration AddImageableToProducts imageable:references:polymorphic แต่เห็นได้ชัดว่าฉันทำผิด มีใครให้คำแนะนำได้ไหม ขอบคุณ เมื่อฉันพยายามใส่มันด้วยตนเองหลังจากสร้างการย้ายข้อมูลฉันก็ทำเช่นนี้: class AddImageableToProducts < ActiveRecord::Migration def self.up add_column :products, :imageable, :references, :polymorphic => true end def self.down remove_column :products, :imageable end end และยังไม่ได้ผล
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.