Track and manage your one off scripts, in rails applications.
Can be used to move stuff out from your rails migrations that dont belong there. For example data migrations can be moved from schema and into one-offs.
Add this line to your application's Gemfile:
gem 'one_offs'
And then execute:
$ bundle
Or install it yourself as:
$ gem install one_offs
After installing the gem, In your Rakefile (/Rakefile) add the following line
require 'one_offs/tasks'
And setup a tracker table (creates migration).
rake one_offs:generate_tracker_table
OR using SQL query if you want to avoid a migration (Useful if you need to setup one off tasks before db:migrate).
rake one_offs:create_tracker_table_using_sql
Add scripts to lib/one_offs/
-
File name should be
<number>_class_name_inside_file.rb
(Rails convention for file name to class name with the order number before that)Example:
File: 1_hello_world.rb Contents: class HelloWorld def self.process puts("You may write your code in this process method"). end end
To run pending one_off scripts.
rake one_offs:run
To baseline one_offs seed them into to the tracker table.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request