FEATURE: Create rake for db migration in plugins (#29163)

* FEATURE: Create rake for db migration in plugins

before the dev-xp was clunky, we had to create a migration file in core and
move it to the plugin.

Now we automated this process, we still create the migration file in core
but the rake task will move it to the plugin.

the usage is:

```
rake plugin:generate_migration[plugin_name,migration_name,migration_args]

rake plugin:generate_migration[discourse-automation,add_group_id_to_automation_rule,"group_id:integer"]
```

* DEV: change rake to be a generator for plugin migrations

* DEV: trying to add extra class option to migration generator

* DEV: revert to have only `plugin_migration_generator`

* DEV: remove rake task for plugin migration creation

* DEV: remove migration_generator.rb

* DEV: remove if because options with `plugin_name` will always be true
This commit is contained in:
Gabriel Grubba 2024-10-18 11:43:45 -03:00 committed by GitHub
parent f227f66b11
commit fe4e2a17cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 19 additions and 0 deletions

View File

@ -0,0 +1,19 @@
# frozen_string_literal: true
require "rails/generators/active_record/migration/migration_generator"
class Rails::PluginMigrationGenerator < ActiveRecord::Generators::MigrationGenerator
class_option :plugin_name,
type: :string,
banner: "plugin_name",
desc: "The plugin name to generate the migration into.",
required: true
source_root "#{Gem.loaded_specs["activerecord"].full_gem_path}/lib/rails/generators/active_record/migration/templates"
private
def db_migrate_path
"plugins/#{options["plugin_name"]}/db/migrate"
end
end