跳轉至內容

Ruby on Rails/ActiveRecord/Migrations/SQL

來自華夏公益教科書

遷移系統有很多助手,你可以使用它們來完成你想要做的事情。 不過,有時你需要做一些這些助手沒有涵蓋的事情。 這就是execute助手發揮作用的地方。

execute 助手

[編輯 | 編輯原始碼]

execute 助手是遷移中使用的一種方法,它接受一個屬性——一個 SQL 命令,作為字串,並將執行 SQL,就像任何其他遷移一樣。 如果 SQL 伺服器在執行命令時返回錯誤,它也會中斷遷移過程(就像遷移助手一樣)。

有用的查詢

[編輯 | 編輯原始碼]

向列新增預設值

[編輯 | 編輯原始碼]
def self.up
  execute "ALTER TABLE items ALTER parent_id SET DEFAULT 0"
end

def self.down
  execute "ALTER TABLE items ALTER parent_id DROP DEFAULT"
end

新增主鍵

[編輯 | 編輯原始碼]
def self.up
  execute "ALTER TABLE taggings ADD id int(11) DEFAULT NULL auto_increment PRIMARY KEY"
end

def self.down
  remove_column :taggings, :id
end
華夏公益教科書