133 lines
6.3 KiB
Ruby
133 lines
6.3 KiB
Ruby
|
class SolidQueueInstall < ActiveRecord::Migration[7.2]
|
||
|
def change
|
||
|
create_table 'solid_queue_blocked_executions', force: :cascade do |t|
|
||
|
t.bigint 'job_id', null: false
|
||
|
t.string 'queue_name', null: false
|
||
|
t.integer 'priority', default: 0, null: false
|
||
|
t.string 'concurrency_key', null: false
|
||
|
t.datetime 'expires_at', null: false
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.index %w[concurrency_key priority job_id], name: 'index_solid_queue_blocked_executions_for_release'
|
||
|
t.index %w[expires_at concurrency_key], name: 'index_solid_queue_blocked_executions_for_maintenance'
|
||
|
t.index ['job_id'], name: 'index_solid_queue_blocked_executions_on_job_id', unique: true
|
||
|
end
|
||
|
|
||
|
create_table 'solid_queue_claimed_executions', force: :cascade do |t|
|
||
|
t.bigint 'job_id', null: false
|
||
|
t.bigint 'process_id'
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.index ['job_id'], name: 'index_solid_queue_claimed_executions_on_job_id', unique: true
|
||
|
t.index %w[process_id job_id], name: 'index_solid_queue_claimed_executions_on_process_id_and_job_id'
|
||
|
end
|
||
|
|
||
|
create_table 'solid_queue_failed_executions', force: :cascade do |t|
|
||
|
t.bigint 'job_id', null: false
|
||
|
t.text 'error'
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.index ['job_id'], name: 'index_solid_queue_failed_executions_on_job_id', unique: true
|
||
|
end
|
||
|
|
||
|
create_table 'solid_queue_jobs', force: :cascade do |t|
|
||
|
t.string 'queue_name', null: false
|
||
|
t.string 'class_name', null: false
|
||
|
t.text 'arguments'
|
||
|
t.integer 'priority', default: 0, null: false
|
||
|
t.string 'active_job_id'
|
||
|
t.datetime 'scheduled_at'
|
||
|
t.datetime 'finished_at'
|
||
|
t.string 'concurrency_key'
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.datetime 'updated_at', null: false
|
||
|
t.index ['active_job_id'], name: 'index_solid_queue_jobs_on_active_job_id'
|
||
|
t.index ['class_name'], name: 'index_solid_queue_jobs_on_class_name'
|
||
|
t.index ['finished_at'], name: 'index_solid_queue_jobs_on_finished_at'
|
||
|
t.index %w[queue_name finished_at], name: 'index_solid_queue_jobs_for_filtering'
|
||
|
t.index %w[scheduled_at finished_at], name: 'index_solid_queue_jobs_for_alerting'
|
||
|
end
|
||
|
|
||
|
create_table 'solid_queue_pauses', force: :cascade do |t|
|
||
|
t.string 'queue_name', null: false
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.index ['queue_name'], name: 'index_solid_queue_pauses_on_queue_name', unique: true
|
||
|
end
|
||
|
|
||
|
create_table 'solid_queue_processes', force: :cascade do |t|
|
||
|
t.string 'kind', null: false
|
||
|
t.datetime 'last_heartbeat_at', null: false
|
||
|
t.bigint 'supervisor_id'
|
||
|
t.integer 'pid', null: false
|
||
|
t.string 'hostname'
|
||
|
t.text 'metadata'
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.string 'name', null: false
|
||
|
t.index ['last_heartbeat_at'], name: 'index_solid_queue_processes_on_last_heartbeat_at'
|
||
|
t.index %w[name supervisor_id], name: 'index_solid_queue_processes_on_name_and_supervisor_id', unique: true
|
||
|
t.index ['supervisor_id'], name: 'index_solid_queue_processes_on_supervisor_id'
|
||
|
end
|
||
|
|
||
|
create_table 'solid_queue_ready_executions', force: :cascade do |t|
|
||
|
t.bigint 'job_id', null: false
|
||
|
t.string 'queue_name', null: false
|
||
|
t.integer 'priority', default: 0, null: false
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.index ['job_id'], name: 'index_solid_queue_ready_executions_on_job_id', unique: true
|
||
|
t.index %w[priority job_id], name: 'index_solid_queue_poll_all'
|
||
|
t.index %w[queue_name priority job_id], name: 'index_solid_queue_poll_by_queue'
|
||
|
end
|
||
|
|
||
|
create_table 'solid_queue_recurring_executions', force: :cascade do |t|
|
||
|
t.bigint 'job_id', null: false
|
||
|
t.string 'task_key', null: false
|
||
|
t.datetime 'run_at', null: false
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.index ['job_id'], name: 'index_solid_queue_recurring_executions_on_job_id', unique: true
|
||
|
t.index %w[task_key run_at], name: 'index_solid_queue_recurring_executions_on_task_key_and_run_at',
|
||
|
unique: true
|
||
|
end
|
||
|
|
||
|
create_table 'solid_queue_recurring_tasks', force: :cascade do |t|
|
||
|
t.string 'key', null: false
|
||
|
t.string 'schedule', null: false
|
||
|
t.string 'command', limit: 2048
|
||
|
t.string 'class_name'
|
||
|
t.text 'arguments'
|
||
|
t.string 'queue_name'
|
||
|
t.integer 'priority', default: 0
|
||
|
t.boolean 'static', default: true, null: false
|
||
|
t.text 'description'
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.datetime 'updated_at', null: false
|
||
|
t.index ['key'], name: 'index_solid_queue_recurring_tasks_on_key', unique: true
|
||
|
t.index ['static'], name: 'index_solid_queue_recurring_tasks_on_static'
|
||
|
end
|
||
|
|
||
|
create_table 'solid_queue_scheduled_executions', force: :cascade do |t|
|
||
|
t.bigint 'job_id', null: false
|
||
|
t.string 'queue_name', null: false
|
||
|
t.integer 'priority', default: 0, null: false
|
||
|
t.datetime 'scheduled_at', null: false
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.index ['job_id'], name: 'index_solid_queue_scheduled_executions_on_job_id', unique: true
|
||
|
t.index %w[scheduled_at priority job_id], name: 'index_solid_queue_dispatch_all'
|
||
|
end
|
||
|
|
||
|
create_table 'solid_queue_semaphores', force: :cascade do |t|
|
||
|
t.string 'key', null: false
|
||
|
t.integer 'value', default: 1, null: false
|
||
|
t.datetime 'expires_at', null: false
|
||
|
t.datetime 'created_at', null: false
|
||
|
t.datetime 'updated_at', null: false
|
||
|
t.index ['expires_at'], name: 'index_solid_queue_semaphores_on_expires_at'
|
||
|
t.index %w[key value], name: 'index_solid_queue_semaphores_on_key_and_value'
|
||
|
t.index ['key'], name: 'index_solid_queue_semaphores_on_key', unique: true
|
||
|
end
|
||
|
|
||
|
add_foreign_key 'solid_queue_blocked_executions', 'solid_queue_jobs', column: 'job_id', on_delete: :cascade
|
||
|
add_foreign_key 'solid_queue_claimed_executions', 'solid_queue_jobs', column: 'job_id', on_delete: :cascade
|
||
|
add_foreign_key 'solid_queue_failed_executions', 'solid_queue_jobs', column: 'job_id', on_delete: :cascade
|
||
|
add_foreign_key 'solid_queue_ready_executions', 'solid_queue_jobs', column: 'job_id', on_delete: :cascade
|
||
|
add_foreign_key 'solid_queue_recurring_executions', 'solid_queue_jobs', column: 'job_id', on_delete: :cascade
|
||
|
add_foreign_key 'solid_queue_scheduled_executions', 'solid_queue_jobs', column: 'job_id', on_delete: :cascade
|
||
|
end
|
||
|
end
|