我有一个 SQL 转储,我想通过 ActiveRecord 执行它。我正在尝试这个:
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
一些迹象:
问题是\i
是psql
的命令,不是postgresql
的。您不能直接在查询中使用它。此外,我看不出为什么 execute
方法会在导入工作时失败的原因。
我认为您将不得不掏腰包,即使这意味着创建另一个数据库连接。注意不需要直接汇编psql
命令,可以使用db
命令:
rails db < seeds.sql
这样您就可以为当前环境重用 config/database.yml
中的连接信息。
我是一名优秀的程序员,十分优秀!