Archive for ธันวาคม 2008
AddUserTimestamps migration – ลืมมันเถิด
ในหน้า 62 ของหนังสือ RailsSpace บอกให้เราสร้าง migration file สำหรับเพิ่มคอลัมน์ใน db เพื่อเก็บ timestamp เลยลองทำตามดู พอรันคำสั่ง rake db:migrate ก็เจอ error แบบนี้
== AddUserTimestamps: migrating ======================================= -- add_column(:users, :created_at, :timestamp) rake aborted! An error has occurred, all later migrations canceled: SQLite3::SQLException: duplicate column name: created_at: ALTER TABLE "users" ADD "created_at" datetime (See full trace by running task with --trace)
พอกลับไปดู migration script อันแรกที่ใช้สร้างตาราง users ถึงสังเกตุว่า Rails 2.2 สร้างคอลัมน์ created_at กับ updated_at ให้อยู่แล้วผ่านคำสั่ง t.timestamps
เพราะงั้นเราจึงไม่ต้องสร้าง migration script นี้ ลบทิ้งโลด
Migration ใน 2.2
Rails 2.2 ตั้งชื่อ migration file โดยใช้วันที่และเวลาแทนตัวเลข 001, 002, …