diff --git a/lib/generators/redmine_plugin_migration/USAGE b/lib/generators/redmine_plugin_migration/USAGE new file mode 100644 index 000000000..4e324bffb --- /dev/null +++ b/lib/generators/redmine_plugin_migration/USAGE @@ -0,0 +1,5 @@ +Description: + Generates a plugin migration. + +Examples: + bin/rails generate redmine_plugin_migration my_plugin add_new_column_to_table diff --git a/lib/generators/redmine_plugin_migration/redmine_plugin_migration_generator.rb b/lib/generators/redmine_plugin_migration/redmine_plugin_migration_generator.rb new file mode 100644 index 000000000..8a37138f7 --- /dev/null +++ b/lib/generators/redmine_plugin_migration/redmine_plugin_migration_generator.rb @@ -0,0 +1,21 @@ +class RedminePluginMigrationGenerator < Rails::Generators::NamedBase + include Rails::Generators::Migration + + source_root File.expand_path("../templates", __FILE__) + argument :migration, :type => :string + + class << self + def next_migration_number(dirname) + next_migration_number = current_migration_number(dirname) + 1 + ActiveRecord::Migration.next_migration_number(next_migration_number) + end + end + + def create_migration_file + plugin_name = file_name.underscore + plugin_pretty_name = plugin_name.titleize + plugin_path = File.join(Redmine::Plugin.directory, plugin_name) + migration_template "migration.rb", + "#{plugin_path}/db/migrate/#{@migration}.rb" + end +end diff --git a/lib/generators/redmine_plugin_migration/templates/migration.rb.tt b/lib/generators/redmine_plugin_migration/templates/migration.rb.tt new file mode 100644 index 000000000..c759c2a68 --- /dev/null +++ b/lib/generators/redmine_plugin_migration/templates/migration.rb.tt @@ -0,0 +1,4 @@ +class <%= @migration_class_name %> < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version %>] + def change + end +end