ruby-on-rails - Rails 3 迁移

标签 ruby-on-rails ruby-on-rails-3

当前迁移:

t.string   "email", :default => "", :null => false
add_index :users, :email, :unique => true

我想创建一个新的迁移来删除 :null => false要求并删除 default => ""email .另外,我想更改索引以删除 :unique => true .语法是什么?

最佳答案

我对索引的处理不多,而且 ActiveRecord::Migration 上似乎没有 change_index 方法。 ,但你可以尝试这样的事情:

class ChangeUserStuff < ActiveRecord::Migration
  def self.up
    change_column :users, :email, :default => "", :null => true
    remove_index :users, :column => :email
    add_index :users, :email
  end

  def self.down
    change_column :users, :email, :default => "", :null => false
    remove_index :users, :column => :email
    add_index :users, :email, :unique => true
  end
end

关于更改 :null 有一些有趣的行为选项,但我相信将它们设置为 true而不是省略应该处理它。

关于ruby-on-rails - Rails 3 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7587632/

相关文章:

ruby-on-rails - 在哪里可以找到 ruby​​ on Rails 应用程序的部署日志文件

javascript - 使用网络音频 api 和 wavesurfer.js 剪切和粘贴音频

mysql - 当我在 ruby​​ on Rails 中加入多个表时,出现错误 : "uninitialized constant OfferLetter::Users"

Ruby 版本 >= 1.9.2 错误但使用 ruby​​ 1.9.3

ruby-on-rails-3 - 路由在 RoR 中不起作用

ruby-on-rails - 为什么 Rails 会对使用哪个 Ruby 感到困惑?

ruby-on-rails - 为什么在安装 gem 'pg' 时出现错误?

ruby-on-rails - 从 rails 中的 Controller 渲染部分

ruby-on-rails - Rails 中的推荐引擎

ruby-on-rails - Rails 使用集合渲染部分内部部分