Tag: postgresql

按月计算,按年计算

我有一个Albums表,其中有一个名为release_date的date列。 我想获得所有月份+年份组合的列表以及该月/年中发布的专辑数量。 所以,输出可能是这样的: 2016年11月 – 11 2016年10月 – 4 2016年7月 – 19日 2015年12月 – 2 Postgres 9.6上的Ruby 2.3.1 w / Rails 5,FWIW。

如何使用Rails在一个查询中执行多个语句?

我正在使用带有ActiveRecord和PostgreSQL的Ruby on Rails。 我如何执行多个SQL查询? 我需要它来运行自定义迁移脚本,例如: Foo.connection.execute < ‘20120806120823’; SQL 我不接受用户的数据,所以我不担心sql注入。 可能是MySQL中的CLIENT_MULTI_STATEMENTS东西? 来自MySQL / PHP文档: CLIENT_MULTI_STATEMENTS :告诉服务器客户端可以在一个字符串中发送多个语句(以“;”分隔)。 如果未设置此标志,则禁用多语句执行。 有关此标志的更多信息,请参阅此表后面的注释。

无法使用gem“pg”从我的Ruby脚本连接到Postgres(pg)数据库(这不是rails,只是纯粹的ruby)

我为我的Mac OSX机器下载了postgres.app。 我有一个rails应用程序已连接并使用postgres应用程序附带的postgres数据库。 现在我正在编写一个纯Ruby测试脚本(Not Rails,纯Ruby,甚至不是Active Record)来尝试连接到postgres数据库实例。 这些是我设置它的步骤 1) ran this command on the terminal: gem install pg — –with-pg-config=/Applications/Postgres.app/Contents/MacOS/bin/pg_config 2) Added this code to the test script: #!/usr/bin/env ruby #encoding: utf-8 require “pg” @conn = PG.connect( :dbname => ‘oData’, :user => ‘am’, :password => ”) @conn.exec(“CREATE TABLE programs (id serial NOT NULL, name character varying(255);”); […]

将Postgres查询转换为Rails ActiveRecord?

是否可以用Rail的ActiveRecord格式编写以下查询? 我已经用arel尝试了十亿种不同的方式,但无法获得相同的结果。 SELECT topic_id, count(*) as total FROM questions_topics WHERE question_id IN ( SELECT id FROM questions WHERE user_id = 1000 UNION ALL SELECT questions.id FROM questions JOIN answers ON (questions.id = answers.question_id) WHERE answers.user_id = 1000 ) GROUP BY topic_id ORDER BY total DESC;

如何使用postgresqlvalidationRails中的重叠时间

我有一个Event model ,在我的日程安排应用程序中有end_at时间和end_at时间,我想在保存之前validation重叠时间。 我在Cloud9上创建了rails应用程序。 我的观点图如下; Day1 07:00 – 07:20 event1 10:30 – 11:30 event2 15:40 – 16:10 event3 [add event button] Day2 08:15 – 09:05 event4 12:08 – 13:04 event5 14:00 – 14:25 event6 [add event button] [save schedule button] end_at time和end_at时间可以同时更改和添加。 我想做的是显示错误,如果我尝试为Day1添加(或更改) 07:05 – 07:30 ,例如, 13:50 – 14:30 ,依此类推。 例如; app_development =#select * […]

从用户分组显示消息表中的最新消息

我正在尝试为用户之间的消息传递创建一个收件箱。 以下是表格: Messsages Id | Message_from | message_to | message 1 | 2 | 1 | Hi 2 | 2 | 1 | How are you 3 | 1 | 3 | Hola 4 | 4 | 1 | Whats up 5 | 1 | 4 | Just Chilling 6 | 5 | 1 | […]

如何将PostgreSQL / bin目录放在Windows的路径中?

我猜我有一个相当简单的问题。 我正在开发一个Ruby on Rails应用程序。 感谢Heroku,我正在尝试切换到PostgreSQL。 在我的database.yml文件中,它指出: Install PostgreSQL and put its /bin directory on your path. 我的问题是如何将PostgreSQL的/ bin目录放在我的路径上? 究竟哪个文件可以修改以及如何修改? 我想这是我的问题,因为当我运行“rails db”命令时,我得到: “找不到数据库客户端:psql,psql.exe。检查你的$ PATH然后再试一次。” 感谢大家! 罗宾。

列出重复值的数量

我有以下一个Rails ActiveRecord协会,其中一个课程有很多书,书籍属于一个课程。 我想运行一个SQL命令,它会告诉我有多少课程有多本属于该课程的书籍。 例如:第1课有第1册和第2册,我想知道发生了多少次。

Rails postgresql数据库连接失败

我是Ruby和postgres的新手。 下面是我的database.yml development: adapter: postgresql database: test_database username: postgresql password: mypassword host: localhost encoding: utf8 用户存在,我可以使用phpPgadmin中的相同凭据登录。 但是,当我启动rails服务器并转到应用程序的主页时,我得到了FATAL: Ident authentication failed for user “postgresql” 。 编辑:如果pghba.conf很重要, # TYPE DATABASE USER ADDRESS METHOD # “local” is for Unix domain socket connections only #local all all peer local all postgres md5 local all postgresql md5 有人可以帮忙吗?

使用唯一字段返回postgresql查询中的前X个记录

好的,所以我在这里有一点学习的时刻,在找到一种让它发挥作用的方法之后,我很好奇是否有任何有更多postgres经验的人可以帮我找到一种方法来做到这一点而不做一个在场景背后的整个lotta rails(或者我正在尝试获得的每个项目进行单一查询)…现在进行解释: 假设我有1000条记录,我们称之为“实例”,在具有以下字段的数据库中: id user_id other_id 我想创建一个我可以调用的方法,它引入10个实例,这些实例都有一个唯一的other_id字段,用简单的英语(我意识到这不起作用:)): Select * from instances where user_id = 3 and other_id is unique limit 10 因此,不是拉入一个10个实例的数组,其中user_id是3,你可以得到多个实例,其中other_id是5,我希望能够在这10个实例上运行一个map函数并返回类似[1,2, 3,4,5,6,7,8,9,10。 理论上,我现在可能会做两件事之一,虽然我试图避免它们: 存储一组id并进行单独调用,确保下一个调用“不在此数组中”。 这里的问题是我正在做10个单独的数据库查询。 拉入大量的50个实例并在ruby中分类,找到10个独特的实例。 这不允许我利用已经在数据库中完成的任何优化,并且我还冒着查询50个没有10个唯一的other_id的项目的风险,除非我,否则我会被困在那些做了另一个问题。 无论如何,希望有人能够告诉我,我忽略了一个简单的选择:)我知道这是一种优化之前它真的需要但是这个function将会一遍又一遍地运行所以我认为它不是一个现在浪费时间。 为了记录,我使用Ruby 1.9.3,Rails 3.2.13和Postgresql(Heroku) 谢谢! 编辑 :只是想给出一个技术上有效的function的例子(上面的数字1) def getInstances(limit, user) out_of_instances = false available = [] other_ids = [-1] # added -1 to avoid submitting a NULL […]