问题标签 [rails-postgresql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
396 浏览

ruby - PostgreSQL 查询正在吞噬虚拟机

[规定:我知道这里没有什么是特定于 Delayed::Job 的。但它有助于建立上下文。]

更新

我相信 SQL 查询没有被垃圾收集。我的应用程序生成许多大型 SQL 插入/更新操作(每个 160K 字节,大约每秒 1 个)并通过以下方式将它们发送到 PostgreSQL:

当我执行这些数据库操作时,我的应用程序会无限制地缓慢增长。当我存根数据库操作(但在我的应用程序中执行所有其他功能)时,膨胀停止。

所以:关于为什么会发生这种情况,我如何查明它,或者我如何让它停止的任何想法?

原始问题

我已经延迟了从网络中获取数据并在 PostgreSQL 数据库中创建记录的任务。它们似乎工作正常,但它们从 vmemsize=100M 开始,在十分钟内增加到 vmemsize=500M,并且还在不断增长。当虚拟机用完时,我的 8G RAM MacBook Pro 开始抖动。

我怎样才能找到内存的去向?

在您向我推荐有关该主题的其他 SO 帖子之前:

我在#after(job) 方法中添加了以下内容:

它报告基本类的使用情况,显式重置 ActiveRecord::Relation 对象(由this SO post建议),显式执行GC(如this SO post建议),并报告有多少对象/字符串/数组/哈希等有(如this SO post所建议的)。就其价值而言,这些课程都没有显着增长。(我应该看其他类吗?但这不会反映在对象的数量上吗?)

我不能使用memprof,因为我运行的是 Ruby 1.9。

如果我在 Linux 上运行,我会考虑其他工具,但我在 OS X 上。

0 投票
1 回答
370 浏览

ruby-on-rails-3 - 尝试使用 rake db:structure:load 加载结构时出错,“schema_migration”不存在

我正在运行rake db:structure:load,但在加载所有结构后,它无法在 schema_migrations 中插入版本。

看起来 PostgreSQL 不知道最近创建的表。已经用谷歌搜索了,但没有发现任何有用的东西。

0 投票
1 回答
291 浏览

ruby-on-rails - Postgres + Heroku Ruby 创建

我有一个在 Heroku 上运行良好的应用程序,我正在尝试使用 Carrierwave 将该应用程序连接到亚马逊的 S3 服务。我以为我的配置文件都适用于所有内容,但是在创建图片实例时遇到了问题。我认为这与 Postgres 及其某些特定格式等有关,但这是主要问题。

我正在TypeError (can't convert nil into String):了解似乎是 POST 到数据库的内容(特别是在 create 方法上)。错误如下所示:

这也是 POST 的开始:

我假设这里的问题是 Postgres 不允许在有字段为零时启动 POST。奇怪的是,sqlite 在这方面做得很好,这就是为什么我猜测问题是 Postgres,不幸的是我将使用 Postgres 进行生产。我对 Postgres 的了解还不够,无法真正缩小这个问题的范围,所以我想我会在这里询问是否可以得到任何帮助/建议!

谢谢!

编辑:这是额外帮助的创建方法

结尾

代码中标记了第 62 行。

编辑2:这是所要求的模型......

0 投票
1 回答
576 浏览

ruby-on-rails - Postgres 在 Rails 上加入查询

我进行了很多研究,但找不到我的问题的答案。我的 Rails 应用程序有以下设置:

人们有:role0的列1

我想获得所有至少有一个人和role == 0一个人使用role == 1.

任何想法?顺便说一句,我正在使用 Postgres。

0 投票
2 回答
3324 浏览

ruby-on-rails - Rails 数据库特定的数据类型

这是我第一次使用 PostgreSQL 试用 Rails。timestamp with timezone我对我通常看到的关于存储绝对时间的列的代码中缺乏使用感到困惑。一个典型的例子是devisetimestamp with out timezone ,它将列存储在 PostgreSQL中转换为 a 的日期时间列。

我认为这是一种不好的做法,因为timestamp with out timezone可能意味着任何时区。如果您正在从另一个应用程序访问数据库,那么如果不查看 Rails ,您将不知道时间戳引用了哪个时区。它只是变成了一个分散的混乱。

我有什么方法可以timestamp with time zone在 ActiveRecord 迁移/模式中为 PostgreSQL 创建一个?会造成与当前 Rails 框架代码不兼容的问题吗?

我了解 ActiveRecord 试图与数据库无关,但这只是我不能忽视的一个小问题。

0 投票
1 回答
344 浏览

ruby-on-rails - Ruby on Rails 数据库和应用程序设计

我们必须基于大型数据库创建相当大的 Ruby on Rails 应用程序。该数据库每天更新,每个表大约有 500 000 条记录(或更多),并且这个数字会随着时间的推移而增长。我们还必须提供所有数据的正确版本以及参照完整性。用户必须可以从一个版本移动到另一个版本,这是主数据库在不同时间点的“快照”。此外,部分数据需要通过 API 提供给其他外部应用程序。

考虑到大量数据,我们考虑将数据库拆分为多个部分:

  1. 当前数据状态

  2. 每个表的版本化属性

  3. 第一个数据库在特定历史时间点的快照

每一个都有自己的应用程序,创建一个带有 API 的服务来与数据交互。它是必需的,因为我们不想创建多个应用程序直接连接到多个数据库。

问题是:这是正确的方法吗?如果没有,你有什么建议?

我们从未有过如此规模的项目的任何经验,我们正在努力寻找可能的最佳解决方案。我们不知道这种数据分离是否有任何意义。如果是这样,如何提供不同应用程序与单个服务以及服务本身之间的适当通信,因为这也是必需的。

0 投票
2 回答
9324 浏览

ruby-on-rails - 每当我创建新的 Rails 应用程序时,如何创建 Postgres 用户和数据库?

我遵循了这个非常有用的教程:

http://blog.willj.net/2011/05/31/setting-up-postgresql-for-ruby-on-rails-development-on-os-x/

我真的很想运行rails new myapp并自动设置 postgres 数据库。有什么方法可以使用Rails 应用程序模板或类似的东西来做到这一点?

0 投票
2 回答
3050 浏览

postgresql - 为什么从rails检索postgresql的时间戳数据时日期时间不同1小时

我有一个问题是我从 Rails 迁移数据库表。在表列中还包括带有时区的时间戳。

当我将数据插入数据库时​​,时间戳列将当前时间保存为(例如 2012-08-09 12:00:00 UTC+6:30)

我认为这意味着 2012-08-09 18:30。但是当我从 rails 3.2.6 检索这些数据时,它显示为 2012-08-09 5:30

为什么它显示为与实际时间不同的 1 小时。有什么想法吗?请

0 投票
1 回答
1163 浏览

ruby-on-rails - 我无法使用视图将 activeRecord 对象保存在旧表中

我在旧数据库中有一个表,其中有一个名为字段的列。将表直接链接到 activeRecord 模型是不可能的,因为后者会尝试创建方法 field_changed? 这已经定义了。

所以我创建了一个视图来重命名字段,并创建了以下规则来允许插入、更新和删除。

我将 activeRecord 模型链接到视图。

我必须添加 self.primary_key = "id",否则 LinkedField.last 等方法会失败(生成错误的 SQL)。

在 SQL 中,一切都很好。在 ruby​​ 中,我可以更新 LinkedField 的属性,或者销毁一个实例,但我不能创建一个。

返回以下错误。

有什么提示吗?我正在使用 postgres 9.0 和 rails 3.2.6。谢谢

0 投票
2 回答
1683 浏览

ruby-on-rails - Rails 和 PostgreSQL 中的时区和夏令时

背景

具有默认created_at列的文章模型

导轨config.time_zone = 'Warsaw'

我有一篇文章 created_at = local time 2012-08-19 00:15 (2012-08-18 22:15 in UTC)。

目标

接收 2012-08-19 (当地时间)创建的所有文章。

我的(无法正常工作)解决方案

生成SQL:

并返回一个空集。但是,如果我在 psql 中运行相同的查询,它会返回一篇文章……这让我很困惑。

问题

我做错了什么以及如何解决?