Class: CreateDelayedJobGroups
- Inherits:
-
ActiveRecord::Migration
- Object
- ActiveRecord::Migration
- CreateDelayedJobGroups
- Defined in:
- lib/generators/delayed_job_groups_plugin/templates/migration.rb
Instance Method Summary collapse
Instance Method Details
#down ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/generators/delayed_job_groups_plugin/templates/migration.rb', line 30 def down remove_columns(:delayed_jobs, :blocked, :job_group_id) if partial_indexes_supported? execute <<-SQL CREATE INDEX delayed_jobs_priority ON delayed_jobs(priority, run_at) WHERE failed_at IS NULL SQL end drop_table(:delayed_job_groups) end |
#partial_indexes_supported? ⇒ Boolean
44 45 46 |
# File 'lib/generators/delayed_job_groups_plugin/templates/migration.rb', line 44 def partial_indexes_supported? connection.adapter_name == 'PostgreSQL' end |
#up ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/generators/delayed_job_groups_plugin/templates/migration.rb', line 5 def up add_column(:delayed_jobs, :blocked, :boolean, default: false, null: false) add_column(:delayed_jobs, :job_group_id, :integer) add_index(:delayed_jobs, :job_group_id) if partial_indexes_supported? remove_index(:delayed_jobs, name: :delayed_jobs_priority) execute <<-SQL CREATE INDEX delayed_jobs_priority ON delayed_jobs(priority, run_at) WHERE failed_at IS NULL AND blocked = FALSE SQL end create_table(:delayed_job_groups) do |t| t.text :on_completion_job t.text :on_completion_job_options t.text :on_cancellation_job t.text :on_cancellation_job_options t.boolean :failure_cancels_group, default: true, null: false t.boolean :queueing_complete, default: false, null: false t.boolean :blocked, default: false, null: false end end |