Tag: postgresql

Heroku Rails 4无法连接到服务器:连接被拒绝

使用postgres。 一直无法推动。 没有任何运气试过这个: config.assets.initialize_on_precompile = false —–>为Rails资产管道准备应用程序 Running: rake assets:precompile rake aborted! could not connect to server: Connection refused Is the server running on host “127.0.0.1” and accepting TCP/IP connections on port 5432?

GroupingError:错误:列“”必须出现在GROUP BY子句中或用于聚合函数

我正在尝试创建一个留下评论的独特患者列表。 代码字很好,直到我上传到heroku,它在postgresql中不起作用。 这是我创建列表的Ruby .erb代码: Lastest comment from ago @comments在控制器中定义为: def index @comments = current_clinician.comments.order(“created_at desc”) end heroku日志给我这个错误信息: PG::GroupingError: ERROR: column “comments.id” must appear in the GROUP BY clause or be used in an aggregate function LINE 1: SELECT “comments”.* FROM “comments” WHERE comments”.”clini… ^ SELECT “comments”.* *FROM “comments” WHERE “comments”.”clinician_id” = $1 GROUP BY patient_id […]

无法安装pg gem

试图安装pg gem会给我带来错误。 我正在使用使用rbenv / ruby​​-build构建的Ruby 1.9.3-p125。 我使用一键安装程序安装了PostgreSQL。 我可以使用pgAdmin连接到数据库。 我的想法已经不多了。 % gem install pg ~ Building native extensions. This could take a while… ERROR: Error installing pg: ERROR: Failed to build gem native extension. /Users/sandropadin/.rbenv/versions/1.9.3-p125/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… […]

在ruby / ActiveRecord中生成类似Instagram或Youtube的不可语句字符串ID

在创建给定的ActiveRecord模型对象的实例时,我需要生成一个短的(6-8个字符)唯一字符串,用作URL中的标识符,采用Instagram的照片URL样式(如http://instagram.com/ p / P541i4ErdL / ,我刚刚加入404)或Youtube的videourl(如http://www.youtube.com/watch?v=oHg5SJYRHA0 )。 这样做的最佳方法是什么? 最简单的方法就是重复创建一个随机字符串 ,直到它是唯一的? 有没有办法散列/随机播放整数id,以便用户不能通过更改一个字符来破解URL(就像我上面的404’d Instagram链接那样)并最终获得新记录?

无法安装pg gem,“mkmf.rb无法找到ruby的头文件”(Mac OSX 10.6.5)

我刚刚升级到Rails 3,并对MacPorts,gem和数据库进行了一些混乱。 我扔掉了所有的gem并将它们安装得很新鲜。 除了pg gem的要求外,一切似乎都没问题。 在为PostgreSQL创建一个新的Rails 3项目后,服务器无法启动,抱怨丢失的pg gem。 做bundle install ,它会拖延一段时间,当然,在pg gem上失败了。 Installing pg (0.10.0) with native extensions /Library/Ruby/Site/1.8/rubygems/installer.rb:483:in `build_extensions’: ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb mkmf.rb can’t find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/pg-0.10.0 for inspection. Results logged to /Library/Ruby/Gems/1.8/gems/pg-0.10.0/ext/gem_make.out from /Library/Ruby/Site/1.8/rubygems/installer.rb:446:in `each’ […]

在选择预定项目时,在Postgres中计算DST

我有一个Postgres 时钟闹钟表(不是真的,但这是类似的,更容易解释)。 用户以1小时的分辨率设置警报,用户可以来自许多不同的时区。 警报每天重复。 我想要可靠地获取应该在一天中的特定时刻发生的警报,并且我遇到了夏令时问题 。 我该如何以最好的方式做到这一点? 例 阿尔弗雷德和洛塔都住在斯德哥尔摩(从UTC开始+1小时,但是在夏令时+ 2小时)。 Sharon住在新加坡(距离UTC +8小时,没有夏令时) 在冬季,阿尔弗雷德在凌晨4点发出警报。 警报应该在当地时间凌晨4点全年开始。 夏季,洛塔在凌晨5点发出警报。 它应该全年都在凌晨5点出发。 与此同时,沙龙已经在上午11点发出警报。 所有这些都可以03:00 UTC的forms存储在数据库中。 如果我在冬天查询数据库以获取应在03:00 UTC发出的警报,我想要Alfred和Sharon的警报。 新加坡现在离瑞典只有7小时,所以新加坡上午11点在瑞典凌晨4点。 洛塔的警报不应再持续一小时。 相反,如果我在夏天查询数据库以获取应在03:00 UTC发出的警报,我想要Lotta和Sharon的警报。 新加坡现在离瑞典只有6小时,所以新加坡上午11点在瑞典上午5点。 斯文的闹钟在一小时前响起。 如何存储,查询数据库? 如有必要,我可以更改数据库架构。 目前,我们根本没有调整DST,事实上只有一个“小时”整数字段(看起来很愚蠢,时间字段会更好)。 我似乎需要存储UTC时间和时区信息,但我不知道如何在Postgres中最好地实现这一点。 我发现Postgres有一些时区概念,但据我所知,没有时区字段类型。 另外,我想我需要在SQL中进行一些计算,以确定如何根据时区数据和创建日期来偏移select中的UTC时间。 我对SQL不太满意…… 我确实想在Postgres中解决这个问题,因为可能存在很多“警报”,我想避免将所有这些问题都引入Ruby并在那里过滤所带来的性能问题。 (是的,这是一个Rails应用程序。)

Postgres权限被拒绝在rake db:create:all上创建数据库

我正在尝试为开发和测试创建postgres数据库。 我正在使用… OSX Yosemite Rails版本:4.2.0 git版本:2.2.2 psql版本:9.4.0 ruby版本:2.1.0p0 HomeBrew版本:0.9.5 的Gemfile … gem ‘pg’ database.yml的 default: &default adapter: postgresql encoding: unicode pool: 5 development: <<: *default database: myapp_development username: username password: test: <<: *default database: myapp_test rake db:create:all返回 PG::InsufficientPrivilege: ERROR: permission denied to create database : CREATE DATABASE “myapp_development” ENCODING = ‘unicode’ …. (lots of tracing) […]

Rails Resque工作程序因PGError而失败:服务器意外关闭了连接

我在Ubuntu 9.10,Rails 2.3.4,ruby-ee 2010.01,PostgreSQL 8.4.2上有站点运行rails应用程序和resque worker在生产模式下运行 工人不断提出错误:PGError:服务器意外关闭了连接。 我最好的猜测是主resque进程建立与db的连接(例如authlogic在使用User.acts_as_authentic时执行此操作),同时加载rails app类,并且该连接在fork()ed进程中损坏(退出?),所以下一个分叉孩子们得到了一些破碎的全局ActiveRecord :: Base.connection 我可以使用此示例代码重现非常类似的行为,模仿resque worker中的fork / processing。 (AFAIK,libpq的用户建议无论如何都要在forked进程中重新创建连接,否则它不安全) 但是,奇怪的是当我使用pgbouncer或pgpool-II而不是直接的pgsql连接时,不会出现这样的错误。 那么,问题是我应该在哪里以及如何挖掘以找出为什么它被破坏以进行普通连接并且正在使用连接池? 还是合理的解决方法?

试图为ror app设置postgres,收到错误 – fe_sendauth:没有提供密码

获得: An error has occurred: Error connecting to the server: fe_sendauth: no password supplied database.yml中的设置与其他计算机上的应用程序设置相同。 如何设置以便我不需要硬编码的密码? 我可以使用PgAdmin-III查看db ok。 我宁愿没有database.yml的密码,因为使用这个应用程序的其他机器没有/需要它,所以它似乎可能与我的Pg安装有关。

Rails迁移:尝试将列的类型从字符串更改为整数

我在rails应用程序中使用rails generate migrations命令创建了一个表。 这是迁移文件: class CreateListings < ActiveRecord::Migration def change create_table :listings do |t| t.string :name t.string :telephone t.string :latitude t.string :longitude t.timestamps end end end 然后我想将纬度和经度存储为整数,所以我试图运行: rails generate migration changeColumnType 并且该文件的内容是: class ChangeColumnType < ActiveRecord::Migration def up #change latitude columntype from string to integertype change_column :listings, :latitude, :integer change_column :listings, :longitude, :integer #change longitude […]