标签: pg

rails pg db for Devise Users的undefined方法`database_authenticatable'

undefined method database_authenticatable' for #<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::TableDefinition:0xd715388>

迁移是:

class DeviseCreateUsers < ActiveRecord::Migration
  def self.up
    create_table(:users) do |t|
      t.database_authenticatable :null => false
      t.recoverable
      t.rememberable
      t.trackable
      t.timestamps
    end
    add_index :users, :email,                :unique => true
    add_index :users, :reset_password_token, :unique => true
  end
  def self.down
    drop_table :users
  end
end
Run Code Online (Sandbox Code Playgroud)

ruby postgresql ruby-on-rails pg

3
推荐指数
1
解决办法
2761
查看次数

为PostgreSQL安装gem pg,openssl库

我正在使用RVM与ruby 2.0.0.当我尝试为PostgreSQL 安装pg gem时,我得到以下响应.

宝石安装pg

Building native extensions.  This could take a while...
ERROR:  Error installing pg:
    ERROR: Failed to build gem native extension.

    /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/ruby extconf.rb
checking for pg_config... yes
Using config values from /usr/bin/pg_config
checking for libpq-fe.h... yes
checking for libpq/libpq-fs.h... yes
checking for pg_config_manual.h... yes
checking for PQconnectdb() in -lpq... no
checking for PQconnectdb() in -llibpq... no
checking for PQconnectdb() in -lms/libpq... no
Can't find the PostgreSQL client library (libpq)
*** extconf.rb failed ***
Could not create …
Run Code Online (Sandbox Code Playgroud)

ruby gem openssl ruby-on-rails pg

3
推荐指数
1
解决办法
2472
查看次数

迭代Ruby中pg_conn查询的所有值

我有一个ruby脚本,我需要从数据库中检索所有值,并检索每个值.目前我很难对每个检索进行编码,但这仅在有3个值返回时才有效.我怎么能迭代这个?以下是我的代码:

  require 'pg'
  pg_conn = PGconn.connect(host = "main-pg-db-super.center.com", port = 6433, options = '', tty = '', 
                        dbname = "master_data", login = "user", password = "password")

  all_children = pg_conn.exec("SELECT id FROM pt.tests WHERE parent = '1';") # will return 3 results
  puts all_children[0]['id']
  puts all_children[1]['id']
  puts all_children[2]['id']
Run Code Online (Sandbox Code Playgroud)

ruby postgresql pg

3
推荐指数
1
解决办法
1385
查看次数

难以使用Mac Postgres App捆绑pg

我尝试在我的Mac上捆绑我的Rails应用程序.在家里它工作正常,我已经设法解决它自己以前,但这次无论我尝试什么,似乎没有什么似乎正在努力解决它.

运行bundle/bundle install时收到的错误如下:

安装pg(0.17.0)Gem :: Installer :: ExtensionBuildError:错误:无法构建gem原生扩展.

/Users/notrab/.rbenv/versions/2.0.0-p0/bin/ruby extconf.rb
Run Code Online (Sandbox Code Playgroud)

检查pg_config ...否否pg_config ...尝试无论如何.如果构建失败,请再次尝试使用--with -pg-config =/path/to/pg_config检查libpq-fe.h ...否找不到'libpq-fe.h header *extconf.rb失败* 由于某些原因无法创建Makefile,可能缺少必要的库和/或标头.检查mkmf.log文件以获取更多详细信息.您可能需要配置选项.

提供的配置选项: - with-opt-dir --without-opt-dir --with-opt-include --without-opt-include = $ {opt-dir}/include --with-opt-lib - without-opt-lib = $ {opt-dir}/lib --with-make-prog --without-make-prog --srcdir =.--curdir --ruby =/Users/notrab/.rbenv/versions/2.0.0-p0/bin/ruby​​ --with-pg --without-pg --with-pg-config --without-pg-config --with-pg_config --without-pg_config --with-pg-dir --without-pg-dir --with-pg-include --without-pg-include = $ {pg-dir}/include --with -pg-lib --without-pg-lib = $ {pg-dir} /

Gem文件将保留在/Users/notrab/Sites/Integrity/vendor/bundle/gems/pg-0.17.0中进行检查.

结果记录到/Users/notrab/Sites/Integrity/vendor/bundle/gems/pg-0.17.0/ext/gem_make.out

安装pg(0.17.0)时发生错误,Bundler无法继续.gem install pg -v '0.17.0'在捆绑之前确保成功.

我显然试过跑步

gem install pg -v'0.17.0'并且它说它成功但是再次捆绑显示同样的错误.

我也试过跑步

gem install pg - --with-pg-config …

postgresql macos gem bundle pg

3
推荐指数
1
解决办法
2774
查看次数

安装pg -v 0.17.1

我正在使用/我想使用Postgresql作为数据库,但是当我输入"bundle install"或"bundle update"时,我收到此错误,我该怎么做才能解决这个问题?:)

    Installing pg (0.17.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir …
Run Code Online (Sandbox Code Playgroud)

ruby postgresql ruby-on-rails bundle-install pg

3
推荐指数
2
解决办法
6643
查看次数

从Ruby长期运行Redshift事务

我使用Ruby pg gem在事务中运行了几个sql语句.我遇到的问题是由于防火墙设置,连接超时了这些查询.这里提出的解决方案不起作用,因为它需要jdbc连接字符串,而我在Ruby中(jRuby不是一个选项).将驱动程序移动到AWS以删除防火墙也不是一种选择.

我的代码如下:

conn = RedshiftHelper.get_redshift_connection
begin
  conn.transaction do
    # run my queries
  end
ensure
  conn.flush
  conn.finish
end
Run Code Online (Sandbox Code Playgroud)

我现在正在研究PG异步API.我想知道我是否可以使用is_busy来防止防火墙超时,或者是那种效果.我找不到关于这个主题的好文档.感谢任何提示.

PS:我已经为单个查询解决了这个问题 - 我可以异步触发它并使用系统STV_INFLIGHT Redshift table来跟踪它的完成.事务不会以这种方式工作,因为我必须保持连接打开.

ruby pg amazon-redshift

3
推荐指数
1
解决办法
974
查看次数

PG(node-postgres)VS. sequelize

我只是想问哪个数据库模块更好,PG还是续集?我听说sequelize有时会出现交易问题.谢谢

node.js pg sequelize.js

3
推荐指数
1
解决办法
3825
查看次数

Ruby PG gem使用数组作为exec_params的参数

我想传递一个像这样的ruby数组值:

sql = "SELECT $1"
User.connection.raw_connection.exec_params(sql, [[1,2]])
Run Code Online (Sandbox Code Playgroud)

这回来了

PG::IndeterminateDatatype: ERROR:  could not determine data type of parameter $1
Run Code Online (Sandbox Code Playgroud)

如果我改变sql"SELECT $1::int[]"我得到PG::InvalidTextRepresentation: ERROR: invalid input syntax for integer: "[1, 2]".

有没有办法将ruby数组传入exec_params并将其转换为PostgreSQL数组?

ruby arrays postgresql ruby-on-rails pg

3
推荐指数
1
解决办法
1677
查看次数

我们总是可以使用knex和postgres将日期列作为字符串(varchar)获取吗?

我在postgres数据库中有一个类型的列date.这是一个像生日这样的列,它只是一个日期,不需要有时间部分.

使用knex获取此列时,结果是一个javascript Date对象.它可能是这样做的new Date(row.birthday),这是发送给客户端的结果.

现在的问题是客户端收到的值是标准的ISO 8601格式,带有时间部分和Z.当客户端尝试从此字符串创建新的Date对象时,客户端可能具有基于客户端所在位置的错误日期值.

例如:

Date: 2018-06-15
Date sent to client: 2018-06-15T00:00:00Z

Client in +5:00     | Client in -5:00
2018-06-16 05:00:00 | 2018-05-15 10:00:00
Run Code Online (Sandbox Code Playgroud)

如果服务器是UTC,这很好,我们可以添加客户端的时区偏移并获取原始日期,但这感觉有点脆弱,并且在本地开发期间(不是UTC)中断.

一个简单的解决方案是将日期部分作为字符串发送给客户端.但这需要将日期存储varchar在服务器中,我们不想这样做.我们将丢失日期格式约束,并且将使用SQL进行基于日期的计算变得更加困难.

我们可以varchar在选择列时强制转换列,但是每次获取此表时我们都需要考虑这一点.这也意味着我们需要绕过ORM(Bookshelf)来处理这个表.

是否有一种简单的方法可以在knex或书架或postgres本身中指定列需要存储为date,具有所有附带的约束,但总是被提取为varchar

javascript postgresql pg bookshelf.js knex.js

3
推荐指数
1
解决办法
1124
查看次数

如何在AWS Lambda中正确加载gem扩展

我无法解决AWS Lambda上的gem加载错误。

{
  "errorMessage": "LoadError: libpq.so.5: cannot open shared object file: No such file or directory - /var/task/vendor/bundle/ruby/2.5.0/gems/pg-1.1.4/lib/pg_ext.so",
  "errorType": "Function<Sequel::AdapterNotFound>",
  "stackTrace": [
    "/var/lang/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'",
    "/var/lang/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'",
    "/var/task/vendor/bundle/ruby/2.5.0/gems/pg-1.1.4/lib/pg.rb:4:in `<top (required)>'",
    "/var/lang/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'",
    "/var/lang/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'",
    "/var/task/vendor/bundle/ruby/2.5.0/gems/sequel-5.16.0/lib/sequel/adapters/postgres.rb:6:in `<top (required)>'",
    "/var/lang/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'",
    "/var/lang/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'",
    "/var/task/vendor/bundle/ruby/2.5.0/gems/sequel-5.16.0/lib/sequel/database/connecting.rb:88:in `load_adapter'",
    "/var/task/vendor/bundle/ruby/2.5.0/gems/sequel-5.16.0/lib/sequel/database/connecting.rb:17:in `adapter_class'",
    "/var/task/vendor/bundle/ruby/2.5.0/gems/sequel-5.16.0/lib/sequel/database/connecting.rb:45:in `connect'",
    "/var/task/vendor/bundle/ruby/2.5.0/gems/sequel-5.16.0/lib/sequel/core.rb:121:in `connect'",
    "/var/task/vendor/bundle/ruby/2.5.0/gems/sequel-5.16.0/lib/sequel/core.rb:399:in `adapter_method'",
    "/var/task/vendor/bundle/ruby/2.5.0/gems/sequel-5.16.0/lib/sequel/core.rb:406:in `block (2 levels) in def_adapter_method'",
    "/var/task/lib/warehouse/loader.rb:5:in `connection'",
    "/var/task/lib/warehouse/loader.rb:24:in `initialize'",
    "/var/task/lib/warehouse/update.rb:43:in `new'",
    "/var/task/lib/warehouse/update.rb:43:in `block in handle'",
    "/var/task/lib/warehouse/update.rb:42:in `each'",
    "/var/task/lib/warehouse/update.rb:42:in `handle'",
    "/var/task/lambda.rb:11:in `handler'"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Sequel库从AWS Lambda建立PSQL连接,但似乎该函数找不到so文件。我已将依赖关系打包到vendor/bundle,在CodeBuild上的Ubuntu中内置,并验证了.so文件是否存在于上载到lambda的结果工件中。我还编辑了$ …

ruby rubygems pg sequel aws-lambda

3
推荐指数
1
解决办法
570
查看次数