我的用户ID迁移表示整数不是整数。我该如何改变它?

时间:2015-02-20 10:19:57

标签: ruby-on-rails ruby-on-rails-4

我的User_ID miration表示整数不是整数。

class AddUserIdToPins < ActiveRecord::Migration
  def change
    add_column :pins, :user_id, :interger
    add_index :pins, :user_id
  end
end

我假设我无法从&#34; interger&#34;到&#34;整数&#34;使用我的文本编辑器,因为它也应该在我的表中。

3 个答案:

答案 0 :(得分:0)

像这样编辑您的迁移:

class AddUserIdToPins < ActiveRecord::Migration
  def up
    add_reference :pins, :user, index: true
  end

  def down
    remove_index :pins, :user_id
    remove_column :pins, :user_id
  end
end

您回滚该迁移:

bin / rake db:migrate:down VERSION = version_number

再试一次:

bin / rake db:migrate:up VERSION = version_number

答案 1 :(得分:0)

您可以将其更改为:integer然后必须运行迁移,这将把列放在db-tables中:

rake db:migrate

如果您尝试像这样运行迁移,则应显示如下错误:

type "interger" does not exist

答案 2 :(得分:0)

这是方法:

(A)首先获取特定的迁移号码:

[shreyas@Arup-iMac rails_app_test (master)]$ rake db:migrate:status

database: app_development

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20150219075735  Create people
   up     20150219085131  Add likes to persons
   up     20150219114058  Add email to people

[shreyas@Arup-iMac rails_app_test (master)]$

(B)现在假设您要编辑迁移 20150219085131 ,然后执行:

bin/rake db:migrate:down VERSION=20150219085131

(C)然后编辑您的迁移并修复您要修复的内容:

class AddUserIdToPins < ActiveRecord::Migration
  def change
    add_column :pins, :user_id, :integer
    add_index :pins, :user_id
  end
end

(D)最后,再次:

rake db:migrate:up VERSION=20150219085131

你完成了!

如果您无法运行当前迁移,那么不用担心,只需通过 hand 更改文件内容,然后运行 rake db:migrate