如何从Ruby上写入Heroku上的PG数据库?(不是轨道)



我有一个非常简单的红宝石文件,在开发环境中我的本地主机上运行良好,但是我无法将其连接到Heroku上的PostgreSQL数据库。

require 'pg'
conn = PG.connect(dbname: 'postgres://uullzzubseknqp:fe8af8be794708c6559d1b521aa285a9500c8645d543fdf23f83bbe7dd628462@ec2-54-235-204-221.compute-1.amazonaws.com:5432/d80u9t8om01fml')

我得到此错误:

/app/vendor/bundle/ruby/2.3.0/gems/pg-0.19.0/lib/pg.rb:45:In initialize': could not connect to server: No such file or directory (PG::ConnectionBad) Is the server running locally and accepting from /app/vendor/bundle/ruby/2.3.0/gems/pg-0.19.0/lib/pg.rb:45:in新' Unix域套接字上的连接"/var/run/postgresql/.s.s.pgsql.5432"?

我无法弄清楚如何从Heroku访问Database_url Env配置变量。我什至尝试过将实际字符串切成代码代替XXXXX,并引发相同的错误。

我在stackoverflow上看到了有关如何在Rails应用中执行此操作的大量建议,但是在如何作为独立的Ruby Worker进行此操作。

谢谢!

编辑:将实际的DB信息添加到帖子中。我知道这是不安全的,但是那里没有什么敏感的,一旦我弄清楚了它。

续集是不使用导轨时连接并发送查询到DB的好方法。

来自文档:

DB = Sequel.connect('postgres://user:password@host:port/database_name') # requires pg

连接字符串由用户名,密码,主机,端口和数据库名称组成,但是您将整个字符串传递给pg.connect为" dbname"。P>

我怀疑您会使用其他参数名称(uri?)中传递该字符串,或将其分解为73

在此处列出的单独组件中

最新更新