2015-10-14 65 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查询。