- Datenbank-Migrationen aus Eninges
- Tasks zum Kopieren oder Verlinken von Assets (/public Verzeichnis in der Engine)
- Die Möglichkeit eine Engine in den Routen der Applikation zu "mounten"
task :migrate => :environment do
ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
ActiveRecord::Migrator.migrate(MeinEngineNamespace::Engine.find_root_with_flag("db").join('db/migrate'), ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
end
Der einzige Unterschied zu dem original-task im Rails core ist das MeinEngineNamespace::Engine.find_root_with_flag("db"). Dort steht im "original" ein einfaches Rails.root. Ist der obige Task irgendwo in der Engine eingebaut (möglichst auch in einem aussagekräftigen Namespace), so können damit aus einer Applikation alle Migrations-Scripte im db/migration Verzeichnis der Engine "rauf" und auch wieder "runter" migriert werden (analog zum "gewohnten" db:migrate Task).
