2010-11-04 58 views
2

我使用的是Redmine,當我運行rake數據庫遷移時,數據庫會在mysql中創建好。我的問題是日期字段是錯誤的。 我希望它是一個MySQL時間戳類型,但它是MySQL中的DATETIME類型。Ruby/Rails - Active Record Db遷移到MySQL - 時間戳類型?

class CreateChats < ActiveRecord::Migration 
    def self.up 
    create_table :chats do |t| 
     t.column :message, :string 
     t.column :user, :integer 
     t.column :sendDate, :timestamp 
    end 
    end 

    def self.down 
    drop_table :chats 
    end 
end 

另外,如果我做出改變這種遷移如何得到它翻拍表(刪除它不工作)?

回答

3

如果需要,您可以隨時插入帶有自定義類型的列。符號名會自動轉換成任何ActiveRecord的定義,但如果你使用一個普通的字符串它會在AS-是:

t.column :ar_timestamp, :timestamp 
t.column :mysql_timestamp, 'timestamp' 

你得到的是ar_timestamp是其中mysql_timestamp被定義爲TIMESTAMP通常DATETIME型。

+0

謝謝。對於遷移,我想出了一個必須增加db文件夾中的遷移版本。 – 2010-11-04 19:24:15

+1

如果您想重新運行遷移,請嘗試'db:migrate:redo' – tadman 2010-11-04 19:40:48