Re: Suporte a migrações de plugins

Bráulio Bhavamitra braulio at eita.org.br
Mon Jul 15 09:01:50 BRT 2013


Hum, agora vejo que o patch acima é necessário. Há um caso em que uma
migração de um plugin depende de uma core com data que deve ser rodada
antes.
No entanto, com o código atual, esta ordem de data não é respeitada e as
migrações de plugin acabam sendo executadas antes.


2013/6/13 Bráulio Bhavamitra <braulio at eita.org.br>

> 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
>



-- 
"Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua
ideologia. Morra por sua ideologia" P.R. Sarkar

EITA - Educação, Informação e Tecnologias para Autogestão
http://cirandas.net/brauliobo
http://eita.org.br
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-br/attachments/20130715/550dc5ad/attachment.html>


More information about the Noosfero-br mailing list