Ruby on Rails - Rake DB:Migrate 不是在创建数据



我正在尝试使用迁移添加 Devise 管理员用户。我尝试使用 --trace 运行以下内容,但没有看到任何问题。 我的迁移文件是:

 class InsertAdminUser < ActiveRecord::Migration
  def up
    User.new(:email => "abc@abc.com", :name => "abc", :password => "abc", admin => true)
  end
  def down
    User.delete_all(:email => "abc@abc.com")
  end
end

当我运行 db:migrate 时,它运行良好,但未创建用户。

知道为什么它没有创建用户,或者我如何进一步调试?

替换

User.new(:email => "abc@abc.com", :name => "abc", :password => "abc", admin => true)

User.create!(:email => "abc@abc.com", :name => "abc", :password => "abc", admin => true)

如果未创建记录,则创建! 将引发错误

您想在迁移文件中执行此操作有什么特殊原因吗?我认为将这种迁移放入种子文件中将是一个更明智的解决方案。

放用户创建!(:email => "abc@abc.com", :name => "abc", :p assword => "abc", admin => true) inseed.rb 并运行 rake db:seed

您还可以创建自定义种子文件,例如,创建 seed_admin.rb 并放置

User.create!(:email => "abc@abc.com", :name => "abc", :password => "abc", admin => true)

创建 delete_admin.rb 并放置

User.delete_all(:email => "abc@abc.com")

然后你可以运行

rake db:seed:seed_admin and rake db:seed:delete_admin

如果你把你的代码放在github上,不要忘记把这些敏感文件放在.gitingore中。

相关内容

  • 没有找到相关文章

最新更新