2013-10-12 40 views
1

我是Rails的新手,所以请耐心等待。缺少Rails 4中的表格列表,定义在迁移中

我试着创建一个新的链接表,并指定迁移下的必要列。

下DB /迁移

class CreateLinks < ActiveRecord::Migration 
    def change 
     create_table :links do |t| 
      t.integer :user_id 
      t.string :url 




      t.timestamps 
     end 
    end 
end 


class AddTitleToLink < ActiveRecord::Migration 
    def change 
    # add_column :links, :user_id, :integer 
    add_column :links, :title, :string 
    end 
end 

但似乎当我跑 “轨控制台”,链接返回

Link(id: integer, created_at: datetime, updated_at: datetime, title: string) 

好像USER_ID(外键)和URL丢失。后面添加的标题在表格中。

我做错了什么?

我不太确定我可以提供哪些其他信息对您有所帮助。让我知道。

+0

你有两个不同的文件,每一个与下这些迁移的一个'DB/migrate'?另外,你是否运行'rake db:migrate'? –

+0

是的,运行rake db:多次迁移。 Nick Veys和Igor S.已经为我解答了这个问题。 – thomasdiong

回答

0

您是否可以在编辑它之前运行CreateLinks迁移以添加这两个字段?如果是这样,您可以整天更改该文件,并且rake db:migrate永远不会重新运行它。这将解释有一个空表links,然后在下一次迁移中添加到该表中。

您可以通过运行rake db:rollback将数据库返回到步骤。试着做两次,然后再次迁移。

1

看不到任何理由不起作用。有没有可能是你第一次运行:

rails g model Link 

(其产生迁移并运行它)

,然后手动添加:url和:USER_ID?

尝试运行两次:

rake db:rollback 

然后再次运行

rake db:migrate 

这将赶上你手动修改

+0

伟大的思想家一样思考! –

+0

当完成写我自己的时候注意到你的答案。 :) –

+0

谢谢你们。这解决了它。我无法选择正确的答案,但:(必须选择第一个答案。 – thomasdiong