如何在迁移中更改字段的大小?

时间:2013-01-09 21:11:03

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我有一个表定义如下:

def self.up
 create_table "equipes", :primary_key => "equipe_id", :force => true do |t|
  t.string   "equipe_nom",                   :limit => 30,   :null => false
  t.string   "equipe_nom_pseudo",    :limit => 8,    :null => false
  t.string   "equipe_manager",       :limit => 40
  t.string   "equipe_telephone_1",   :limit => 22
  t.string   "equipe_adresse_email", :limit => 50
  t.string   "equipe_responsable",   :limit => 50

  t.timestamps
end

我想将字段“equipe_nom”的限制从30更改为150。

最好的方法是什么?

我可以使用RAKE G MIGRATION .... ??

由于

1 个答案:

答案 0 :(得分:2)

首先:不要将rake命令与rails命令混淆。 Rake是一个命令,它将运行比make命令更先进的任务。 rails是rails框架提供的命令,例如,创建应用程序,生成迁移等。只需键入{{1},您将获得所有rails命令的列表及其效果在没有参数的终端中。 rails会为您生成迁移。详细了解迁移in this rails guide

除此之外,有两种方法可以解决您的问题:

  • 如果您之前已经运行过此迁移并且这是上次迁移,则需要运行rails g migration migrationname,然后更改上面显示的迁移文件中的值,保存它,然后运行{{ 1}}再次。这将首先反转上次迁移(在这种情况下,删除表“equipes”),然后再次运行它并进行更改。
  • 如果这是较旧的迁移,您可以通过rake db:rollback创建一个新的迁移。查看它创建的文件。在rake db:migrate内写道:rails g migration change_equipe_nom_to_limit_150。保存文件,运行def up

如果您不确定哪种情况适用,请执行第二种情况。它会一直有效。