Suporte a migrações de plugins
Bráulio Bhavamitra
braulio at eita.org.br
Thu Jun 13 11:59:32 BRT 2013
Oi pessoal,
O suporte a migrações de plugins é bem limitado, sobretudo por conta
do rails pois não suporta vários caminhos de pastas para migrações.
Isto faz por exemplo que as tasts db:migrate:{down,up,reset} não
funcionem para uma migração de um plugin.
Bom, para resolver isto fiz um monkey patch bem simples que acabou
também simplificando o lib/tasks/plugin.rake
Veja como ficou o arquivo no final.
Se for tudo bem isto, faço um merge request.
abraços,
braúlio
require 'active_record'
require_dependency 'active_record/migration'
class ActiveRecord::Migrator
alias_method :orig_initialize, :initialize
def initialize *args
orig_initialize *args
@migrations_path = "{db/migrate,config/plugins/*/db/migrate}"
end
end
namespace :noosfero do
namespace :plugins do
plugin_migration_dirs = Dir.glob(File.join(Rails.root, 'config',
'plugins', '*', 'db', 'migrate'))
task :migrate do
plugin_migration_dirs.each do |path|
ActiveRecord::Migrator.migrate(path, ENV["VERSION"] ?
ENV["VERSION"].to_i : nil)
end
end
end
end
More information about the Noosfero-br
mailing list