我有一個SQL轉儲,我想通過ActiveRecord執行。我想這樣的:通過ActiveRecord調用Postgre SQL轉儲
ActiveRecord::Base.connection.execute(File.read(sql_seeds))
但我得到這個錯誤:
rake aborted!
PG::Error: ERROR: syntax error at or near "1"
LINE 18: 1 Shanghai 2012-12-20 10:31:31.350111 2012-12-20 10:31:31.35...
在該行的SQL腳本的:
COPY locations (id, description, created_at, updated_at) FROM stdin;
1 Shanghai 2012-12-20 10:31:31.350111 2012-12-20 10:31:31.350111
一些跡象表明:
ActiveRecord::Base.connection.execute("\\i #{sql_seeds}")
不起作用,因爲\i
是psql
命令(謝謝@JiříPospíšil和@RichardHuxton)我不想
%X(psql -U #{user} -H #{host} -P #{pass} ...)
,因爲我會用已有的ActiveRecord的數據庫連接。我在使用PostgreSQL 9.2。
\ i查詢的文檔在哪裏?我沒有找到任何。 – phoet
這是一個Postgres命令,你可以在這裏找到:http://www.postgresql.org/docs/9.2/static/backup-dump.html 可以在1.SQL在SQL腳本中使用它,比如你寫'\ i 2.sql',2.sql的內容會被執行 – mdesantis
對不起,但是究竟在哪裏? – phoet