class CreateGoodJobs

Public Instance Methods

change() click to toggle source
   # File lib/generators/good_job/templates/update/migrations/01_create_good_jobs.rb
 3 def change
 4   enable_extension 'pgcrypto'
 5 
 6   create_table :good_jobs, id: :uuid do |t|
 7     t.text :queue_name
 8     t.integer :priority
 9     t.jsonb :serialized_params
10     t.timestamp :scheduled_at
11     t.timestamp :performed_at
12     t.timestamp :finished_at
13     t.text :error
14 
15     t.timestamps
16 
17     t.uuid :active_job_id
18     t.text :concurrency_key
19     t.text :cron_key
20     t.uuid :retried_good_job_id
21   end
22 
23   add_index :good_jobs, :scheduled_at, where: "(finished_at IS NULL)", name: "index_good_jobs_on_scheduled_at"
24   add_index :good_jobs, [:queue_name, :scheduled_at], where: "(finished_at IS NULL)", name: :index_good_jobs_on_queue_name_and_scheduled_at
25   add_index :good_jobs, [:active_job_id, :created_at], name: :index_good_jobs_on_active_job_id_and_created_at
26   add_index :good_jobs, :concurrency_key, where: "(finished_at IS NULL)", name: :index_good_jobs_on_concurrency_key_when_unfinished
27   add_index :good_jobs, [:cron_key, :created_at], name: :index_good_jobs_on_cron_key_and_created_at
28 end