Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails -- Possible to run migration methods in generic rake task?

I know this is not best practice, and most likely shouldn't even be used, as thats what migrations are used for, but I was wondering if its possible to execute migration specific commands in a regular rake task. Something like:

namespace :dummy do
    task :update => :environment do
      add_column :users, :deleted, :boolean, { :null => false, :default => false }
   end
end

Thanks

like image 650
gmoniey Avatar asked Feb 27 '23 14:02

gmoniey


1 Answers

It is possible to run arbitrary pseudo-migrations in your rake tasks:

namespace :dummy do
  task :update => :environment do
    ActiveRecord::Base.connection.add_column :users, :deleted, :boolean, :null => false, :default => false
  end
end

If you're doing a lot of that sort of thing, use short-hand:

namespace :dummy do
  task :update => :environment do
    c = ActiveRecord::Base.connection

    c.add_column :users, :deleted, :boolean, :null => false, :default => false
  end
end
like image 124
tadman Avatar answered Mar 05 '23 16:03

tadman