Skip to content

Commit cc2e06a

Browse files
committed
Merge pull request activeadmin#1629 from gregbell/fix-devise-migration-rails-3-0
Fix DeviseCreateDefaultAdminUser migration for Rails 3.0
2 parents 1bd7cd3 + 3ed1b0f commit cc2e06a

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

lib/generators/active_admin/devise/devise_generator.rb

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,24 @@ def set_namespace_for_path
3535

3636
def add_default_user_to_migration
3737
# Don't assume that we have a migration!
38-
devise_migrations = Dir["db/migrate/*_devise_create_#{table_name}.rb"]
39-
if devise_migrations.size > 0
40-
inject_into_file Dir["db/migrate/*_devise_create_#{table_name}.rb"].first,
38+
devise_migration_file = Dir["db/migrate/*_devise_create_#{table_name}.rb"].first
39+
return if devise_migration_file.nil?
40+
41+
devise_migration_content = File.read(devise_migration_file)
42+
43+
if devise_migration_content["def change"]
44+
inject_into_file devise_migration_file,
4145
"def migrate(direction)\n super\n # Create a default user\n AdminUser.create!(:email => 'admin@example.com', :password => 'password', :password_confirmation => 'password') if direction == :up\n end\n\n ",
4246
:before => "def change"
47+
elsif devise_migration_content[/def (self.)?up/]
48+
inject_into_file devise_migration_file,
49+
"# Create a default user\n #{class_name}.create!(:email => 'admin@example.com', :password => 'password', :password_confirmation => 'password')\n\n ",
50+
:before => "add_index :#{table_name}, :email"
51+
else
52+
puts devise_migration_content
53+
raise "Failed to add default admin user to migration."
4354
end
4455
end
45-
4656
end
4757
end
4858
end

0 commit comments

Comments
 (0)