问题标签 [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.
ruby-on-rails-3 - 在 Ubuntu 10.04 VM 上安装带有 Rails 3.2.1 的 Postgresql 8.4 时如何创建非系统用户?
今天我尝试在我的本地 Ubuntu 10.04 VM 上安装带有 Postgresql 8.4 的 Rails 3.2.1。我基本上遵循了http://www.mcbsys.com/techblog/2011/10/set-up-postgresql-for-rails-3-1/的说明。我唯一需要做的就是将 pg_hba.conf 中的一行更改为“local postgres myapp trust”,因为默认用户 postgres 没有密码,我必须创建一个名为“login_name”的 postgresql 用户来匹配我的 Linux系统登录用户名(为了这个例子,我们称之为“login_name”),否则我无法使用 rake db:create 创建数据库。
我的 database.yml 文件如下所示:
我的问题是为什么我必须创建一个与我的系统登录名匹配的用户名才能让它工作,有没有办法解决这个问题? 我用谷歌搜索了这个,真的找不到满意的答案。
ruby-on-rails - PostgreSQL 查找记录并按左外连接排序
我正在尝试通过以下 SQL 查询中的左外连接上的字段对检索到的记录进行排序:
但是检索到的记录没有按预期正确排序(即按 events.created_at)
任何线索如何在保持性能高效的同时成功地做到这一点?
ruby-on-rails - Rails 范围:选择具有值的不同标题
我在使用范围内的 SQL 查询时遇到问题。我需要返回一组唯一的 Project.titles 及其随附的 id,以便在表单中使用。
我可以使用
但我没有得到结果选项的价值
= project_form.input :id, collection: current_user.projects.unique_title
结果:
因此,将 id 添加到我的范围:
结果给了我值,但现在我的 DISTINCT 选择已失效:
ruby-on-rails - Heroku 上 Rails 3.1 中 Postgres 口音不敏感的 LIKE 搜索
如何在 Rails 中修改搜索查询的 where/like 条件:
find(:all, :conditions => ["lower(name) LIKE ?", "%#{search.downcase}%"])
这样无论口音如何,结果都匹配?(例如地铁 = 地铁)。因为我使用的是utf8,所以不能使用“to_ascii”。生产在 Heroku 上运行。
ruby-on-rails - 推送到 Heroku 时出现 OmniAuth ActiveRecord 错误
我遇到了一种奇怪的情况,我可以在本地运行时通过 Omniauth 从 Facebook 响应中读取和保存信息,但是当我将确切的代码推送到 Heroku 时,出现以下错误(来自我的日志)关于列名。
我使用术语“鱼友”代替用户......我知道这不是标准用途,但对于我的用例来说,它似乎更有意义。我可能会及时改回来...
这是来自omniauth的我的facebook回调:
正如你所看到的,我已经锁定了我的 Facebook 个人资料,所以不要期望获得所有额外的信息(例如关系状态等)。
我正在尝试建立新用户的基本资料(我的术语中的“鱼友”),这将获取他们乐于从 facebook 分享的一些额外信息。
当我在本地执行此操作时,它可以正常工作,例如,我可以收集我的名字、姓氏、性别和语言环境并将其保存到数据库中。
这是我用来编写配置文件的代码
然后,我使用此代码显示此配置文件信息(在表格中):
当我推送此代码时,相同的信息会出现如上所述的活动记录错误。
但是,如果我从 [raw_info][extra] 部分中删除任何列,则代码适用于 Heroku(例如,全名、UID、提供程序等都保存到数据库中)。
让我完全困惑的是这段代码在本地工作——所以我收集到我正在正确地从“raw_info”部分请求数据。
我已经确认我已经在 Heroku 上运行了迁移,并且 - 正如其他一些问答所建议的那样 - 还使用了“heroku restart”来确保在应用程序中获取数据库列。
这是我的 gemfile 中的 OmniAuth 条目:
我在本地运行 Rails 3.1.3 和 postgres 9.1.2。我正在使用我认为运行 PG 8.x 的免费 Heroku 数据库。
以下是创建特定列的迁移文件的摘录:
这就是我运行 heroku 控制台时返回的结果:
当我的代码到达 Heroku 时可能会发生什么?是 Postgres 版本的问题吗?
heroku - Heroku db:push 因段错误而失败
我正在为 Rails 3.1 Ruby 1.9.2 安装一个新的 Heroku 应用程序。问题在于执行 'heroku db:push' 来填充数据库(它已被适当地模式化——现在唯一的问题是获取一些数据)。它失败并显示以下报告:
/Users/upstill/.rvm/gems/ruby-1.9.2-p290/gems/sqlite3-1.3.5/lib/sqlite3/sqlite3_native.bundle:[BUG]分段错误
ruby 1.8.7 (2010-01-10 补丁级别 249) [universal-darwin11.0]
中止陷阱:6
这令人费解有两个原因:第一,我在本地和 heroku 上都使用 postgresql 数据库(在 config/database.yml 中正式声明)。第二,ruby 1.8.7 与什么有关?rvm 是为 1.9.2 设置的,它在我的路径上,但 heroku 正在尝试运行它?是什么赋予了?
谢谢,史蒂夫Upstill
ruby-on-rails - Rails:带有 PG gem 的 Sqlite
我在我的 Mac 上安装了 postgres,并第一次使用 Rails 进行了尝试。我包括 gem "pg" 并删除了 sqlite3 gem(毕竟,如果使用前者,为什么需要后者)。但是,当我尝试启动服务器时,我收到了此错误消息
所以我再次包含了 sqlite3 gem,现在服务器工作正常,但我实际上不知道我的测试应用程序使用的是 sqlite3 还是 pg?
a) 如果我打算使用 pg gem,我应该安装 sqlite3 gem 吗?b)如果我只应该安装两个中的一个,有没有办法找出我的测试应用程序当前正在使用哪个(因为它们都在 Gemfile 中)
宝石文件
postgresql - Postgres:创建用户名
我正在尝试在 Mac 上开始使用 Postgres on Rails 应用程序。我制作了一个名为“shawsome”的新rails应用程序,并在database.yml文件中创建了这个
但是服务器不会运行,因为“shawsome”没有角色。Rails 似乎只是从我的应用程序名称中推断出用户名。
我查看了 postgres 文档,它谈到了 CREATE USER 命令
但是,当我尝试创建用户时,它说找不到创建评论。
谁能告诉我我做错了什么?
此外,一旦它投入生产(在 Heroku 上),我假设它也需要一个用户名。该用户名会保持不变吗?即如果它是在我的机器上配置的,我是否需要在 Heroku 上做任何额外的事情?
ruby-on-rails - 批量插入或更新 postgresql
我在 ruby 哈希中有 16000 个项目。(下载为 XML 并转换为哈希)我需要将这些推送到数据库中。每周一次,其中一些会改变,但我不知道是哪些。
我所看到的建议是直接使用 SQL,因为活动记录(在该站点上)在直接插入时会慢 70 倍。甚至没有考虑更新/插入
我想知道哪种方法最好。有没有人收到过大量(或很小)的数据,他们必须反复插入/更新?
您能否提供建议。
ruby-on-rails-3 - rspec 返回“PG::Error: ERROR: 关系“table_name”不存在”
环境是 rvm、rspec 2.8.0、rails 3.0.6 和 pg 0.13.2 上的 REE(2011.12)。在 CentOS 5.6 上使用 PostgreSQL 8.3.17。db:migrate 正常工作。但是 rspec 有以下错误。
我正在将我的项目从带有 rspec 1.x 系列的 rails 2.3.5 更新到带有 rspec2 的 rails 3.0。复制了所有 rspec 测试,我已经合并了旧的 spec_helper.rb 和新的(它是生成的rails g rspec:install
)。
我阅读了有关此错误的类似问题。所以我尝试了rake db:test:prepare
或rake db:test:load
,但它没有解决。你有什么主意吗?看起来测试没有在测试数据库上运行......我该怎么办?:(