Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kanety/delayed_job_json


https://github.com/kanety/delayed_job_json

Last synced: 8 days ago
JSON representation

Awesome Lists containing this project

README

        

# DelayedJobJson

Migrate handler of text column to json column for delayed_job.

## Dependencies

* ruby 2.7+
* activerecord 6.0+
* delayed_job 4.1
* delayed_job_active_record 4.1

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'delayed_job_json'
```

And then execute:

$ bundle

## Usage

Generate migration files:

$ rails generate delayed_job_json:migration

Edit generated files and leave codes only for your database. An example of generated file is shown as follows:

```ruby
class AddPayloadToDelayedJobs < ActiveRecord::Migration[7.0]
def up
case ENV['DATABASE']
when 'postgresql'
add_column :delayed_jobs, :payload, :jsonb, null: false, default: {}
add_index :delayed_jobs, :payload, using: :gin
when 'mysql'
add_column :delayed_jobs, :payload, :json
else
add_column :delayed_jobs, :payload, :json, null: false, default: {}
end
end

def down
case ENV['DATABASE']
when 'postgresql'
remove_column :delayed_jobs, :payload, :jsonb, null: false, default: {}
when 'mysql'
remove_column :delayed_jobs, :payload, :json
else
remove_column :delayed_jobs, :payload, :json, null: false, default: {}
end
end
end
```

Then run migration:

$ rake db:migrate

This migration adds `payload` column to delayed_jobs table, and YAML data in `handler` column is migrated to `payload` as json data.

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/kanety/delayed_job_json.

## License

The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).