gpt4 book ai didi

ruby-on-rails - 通过 ActiveRecord 调用 Postgresql 转储

转载 作者:太空宇宙 更新时间:2023-11-03 17:55:39 24 4
gpt4 key购买 nike

我有一个 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

一些迹象:

  • 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。

最佳答案

问题是\ipsql 的命令,不是postgresql 的。您不能直接在查询中使用它。此外,我看不出为什么 execute 方法会在导入工作时失败的原因。

我认为您将不得不掏腰包,即使这意味着创建另一个数据库连接。注意不需要直接汇编psql命令,可以使用db命令:

rails db < seeds.sql

这样您就可以为当前环境重用 config/database.yml 中的连接信息。

关于ruby-on-rails - 通过 ActiveRecord 调用 Postgresql 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14234133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com