activeadminは簡単に管理画面が作れる便利なgemだけど、今回の本題とはズレるので詳細は省略。
で、困ったことはadmin@example.comという管理ユーザがrake db:resetだと作成されないこと。
仕方ないので、railsコンソール開いてAdminUser.create!してしまった。まぁ、何度もやりたくないわな。
migrateファイルを覗いてみる。
class DeviseCreateAdminUsers < ActiveRecord::Migration
def migrate(direction)
super
# Create a default user
AdminUser.create!(email: 'admin@example.com', password: 'password', password_confirmation: 'password') if direction == :up
end
・・・
migrateが実行されてないのかな。RailsGuidesを見てみるとdb:resetは
The rake db:reset task will drop the database and set it up again. This is functionally equivalent to rake db:drop db:setup.全てのmigrationsを実行してるのではなくて、現在のschema.rbを使ってるだけ、とのことだ。なるほど。
This is not the same as running all the migrations. It will only use the contents of the current schema.rb file.
それに対して、db:migrate:resetは順にmigrationsを実行してくれるわけだ。初期の管理ユーザーも作られた。