【问题标题】:ruby on rails ch10: command create errorsruby on rails ch10:命令创建错误
【发布时间】:2016-04-25 23:51:00
【问题描述】:

清单 10.3 Ruby on Rails 教程 - RED

当我在 10.2 教程之前使用过命令时

rails generate migration add_activation_to_users \
➢   activation_digest:string activated:boolean activated_at:datetime

我有如下问题,我做错了什么?

$ rails generate migration add_activation_to_users \ 
activation_digest:string activated:boolean activated_at:datetime
      invoke  active_record
    conflict    db/migrate/20160425232958_add_activation_to_users.rb
Another migration is already named add_activation_to_users: /home/ubuntu/workspace/sample_app/db/migrate/20160425203345_add_activation_to_users.rb. Use --force to replace this migration or --skip to ignore conflicted file.

但是那些行并不完全一样,即使里面是一样的:

1 [时间戳]_add_activation_to_user.rb 2 220138948390_add_activation_to_use.rb

在这些文件中如下:

类 AddRememberDigestToUsers <:migration>

定义改变

add_column :users, :remember_digest, :string

结束

结束

有什么问题吗?

【问题讨论】:

  • 您一定已经完成了这一步。你确定这是这个项目的第一次吗?看看db/migrations 看看那里有什么。
  • 我在下面有:db/migrate/[timestamp]_add_activation_to_users.rb 和下面相同(#is not exact):db/migrate/206543088_add_activation_to_users.rb class AddActivationToUsers
  • 如果您有更多要添加的内容,这很好,通常更容易修改您的问题并将其放在那里,因为代码格式有助于大大提高可读性。那是迁移。问题是您有两个名称相同但版本号不同。
  • 我的文件与下面的示例相同:db/migrate/[timestamp]_add_activation_to_users.rb db/migrate/206543088_add_activation_to_users.rb 那么,我应该忽略它吗?
  • 你说得对。我该如何修改代码?我只能看到“回答你的问题”选项——这不是真的,因为我还没有答案。

标签: ruby-on-rails


【解决方案1】:

您需要确保只有一个具有任何给定名称的迁移。如果由于某种原因,您有两个不同的迁移具有相同的名称但不同的时间戳,您可能会收到此类错误。

解决方案是找出哪个是正确的迁移,然后删除或重命名另一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-21
    • 2014-02-16
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 2015-06-02
    • 2012-11-02
    • 2013-02-13
    相关资源
    最近更新 更多