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 迁移 .... 吗?

谢谢

4

1 回答 1

2

首先:不要将rake命令与rails命令混淆。Rake是一个比 make 命令运行更高级的任务的命令。rails是 rails 框架提供的命令,例如,创建应用程序、生成迁移等。您只需在终端中rails输入不带参数的命令即可获得所有命令及其效果的列表。将为您生成迁移。在此 Rails 指南中阅读有关迁移的更多信息。railsrails g migration migrationname

有了这个,有两种可能性可以解决您的问题:

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

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

于 2013-01-09T21:24:05.000 回答