跳转至内容

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
华夏公益教科书