2015-10-14 29 views
0

活動作業在將作業放入其隊列時創建以下SQL。將Rails SQL輸出轉換爲有效的psql語句

INSERT INTO "delayed_jobs" ("queue", "handler", "run_at", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["queue", "mailers"], ["handler", "--- !ruby/object:ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper\njob_data:\n job_class: ActionMailer::DeliveryJob\n job_id: 189ce295-1da8-47f5-9933-1b5657554731\n queue_name: mailers\n arguments:\n - UserMailer\n - register_success\n - deliver_now\n - _aj_globalid: gid://hub/User/1\n - _aj_globalid: gid://hub/Order/294\n - token: 561e6309deb2b9.72817606\n number: 123\n expiration: '2025-10-14'\n"], ["run_at", "2015-10-14 14:13:30.140078"], ["created_at", "2015-10-14 14:13:30.140408"], ["updated_at", "2015-10-14 14:13:30.140408"]] 

我該如何修改它以作爲原始SQL查詢使用?我認爲導軌輸出應該是有效的SQL,但我得到一個錯誤

錯誤:語法錯誤在或接近「[」 行1:... at「)VALUES($ 1,$ 2,$ 3, $ 4,$ 5)恢復「ID」 [「隊列」,...

回答

2

它使用的是佔位符,所以您需要用值 替換$ x,所以

INSERT INTO "delayed_jobs" ("queue", "handler", "run_at", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["queue", "mailers"], ["handler", "--- !ruby/object:ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper\njob_data:\n job_class: ActionMailer::DeliveryJob\n job_id: 189ce295-1da8-47f5-9933-1b5657554731\n queue_name: mailers\n arguments:\n - UserMailer\n - register_success\n - deliver_now\n - _aj_globalid: gid://hub/User/1\n - _aj_globalid: gid://hub/Order/294\n - token: 561e6309deb2b9.72817606\n number: 123\n expiration: '2025-10-14'\n"], ["run_at", "2015-10-14 14:13:30.140078"], ["created_at", "2015-10-14 14:13:30.140408"], ["updated_at", "2015-10-14 14:13:30.140408"]] 

會來

INSERT INTO "delayed_jobs" ("queue", "handler", "run_at", "created_at", "updated_at") 
VALUES (
'mailers', 
'--- !ruby/object:ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper\njob_data:\n job_class: ActionMailer::DeliveryJob\n job_id: 189ce295-1da8-47f5-9933-1b5657554731\n queue_name: mailers\n arguments:\n - UserMailer\n - register_success\n - deliver_now\n - _aj_globalid: gid://hub/User/1\n - _aj_globalid: gid://hub/Order/294\n - token: 561e6309deb2b9.72817606\n number: 123\n expiration: '2025-10-14'\n', 
'2015-10-14 14:13:30.140078', 
'2015-10-14 14:13:30.140408', 
'2015-10-14 14:13:30.140408' 
) RETURNING "id" 
+0

哎呀,在剪切和粘貼不好的工作,@muistooshort固定感謝 – Doon

1

如果您有權訪問生成的數據庫調用ActiveRecord對象,你可以使用to_sql方法來獲取SQL查詢。