Tag: 数据库

Gem :: LoadError:为数据库适配器指定’postgresql’,但未加载gem

帮我! 输入“mina deploy”得到这个美: 我的“/home/deploy/inscope/shared/config/database.yml”看起来像: production: adapter: postgresql encoding: unicode database: *** username: *** password: *** host: localhost rake aborted! Gem::LoadError: Specified ‘postgresql’ for database adapter, but the gem is not loaded. Add `gem ‘pg’` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord). /home/deploy/inscope/tmp/build-142737137923106/vendor/bundle/ruby/2.2.0/gems/activerecord-4.1.0/lib/active_record/connection_adapters/connection_specification.rb:190:in `rescue in spec’ /home/deploy/inscope/tmp/build-142737137923106/vendor/bundle/ruby/2.2.0/gems/activerecord-4.1.0/lib/active_record/connection_adapters/connection_specification.rb:187:in `spec’ /home/deploy/inscope/tmp/build-142737137923106/vendor/bundle/ruby/2.2.0/gems/activerecord-4.1.0/lib/active_record/connection_handling.rb:50:in […]

两个进程同时在数据库中保存记录

当多个用户在数据库(MySQL,Postgres)中同时插入数据时会发生什么? 它如何优先考虑首先插入哪个记录以及后面哪个记录。 如果答案是针对程序的应用,我要求参考网络应用程序。

使用Ruby on Rails 3显示’file_field’的’size’属性的问题

我正在使用Ruby on Rails 3,我有一个这样的表单: … “test_id”, :style => “display: block”, :size => “13” %> … 当我去查看页面的来源时,这是生成的HTML代码: 这意味着’size’属性没有。 我试过Firefox,Chrome和Safari:相同的输出,但它似乎已正确设置所有内容。 这是与RoR3相关的问题吗?

Rails外键列名称约定为一元多关系

我知道如果有一个“users”表和一个“posts”表,根据rails约定,posts表有一个名为’user_id’的外键列。 当我有一个“用户”表并且我想要制作的关系是一元多 (许多买家可以通知许多卖家,买家和卖家都是“用户”)时,我的问题就出现了。 现在“通知”是连接表,它必须包含外键“user_id”和“user_id”,用于根据命名外键的rails约定存储买方和卖方ID,但显然这不能做到。 有人能告诉我如何在一元多关系中命名FK列,以及这种关系的rails访问器方法是什么?

如何合并两个具有Heroku上相同模式的数据库?

我创建了两个在heroku上基本相同的应用程序。 他们开始时不同,因为我正在测试上传到heroku并且在进行调整时遇到了一些挑战。 但现在事情似乎有效,但两者都有我希望巩固的数据。 由于它们运行相同的git存储库,因此代码与迁移相同。 似乎我需要在本地将其归结并合并,但不清楚如何做到这一点。 在Google上进行了一些搜索并没有明确的说明 我想逐步提供一些帮助,我没有明确的流程。 1)我在heroku上有两个应用程序,我有数据库。 他们有相同的模式; 2)我不需要知道数据的来源:我只需要将它们全部放在一个数据库中 3)我希望能够使用特定的sql命令,而不是手动打开(不确定我将如何做),然后重复,因为有大约10个不同的相互关联的表。 谢谢!

如何在非rails应用程序中使用ActiveRecord创建新的MySQL数据库?

我正在构建一个使用ActiveRecord的非rails纯ruby应用程序。 我想写一个rake文件,为它创建一个数据库和表。 我尝试以下代码 namespace :db do task :create do conn = ActiveRecord::Base.connection create_db = “CREATE DATABASE foo_dev” conn.execute(create_db) end end 但这给了我 ActiveRecord::ConnectionNotEstablished: ActiveRecord::ConnectionNotEstablished 错误。 嗯,这很明显,因为我没有将ActiveRecord连接到任何数据库。 我该怎么办? 编辑:我想创建一个MySQL数据库。

Rails通过现有数据库进行迁移

我正在创建一个新的Rails 3.1应用程序。 我希望这个新的应用程序重用现有的数据库(由之前的rails 2应用程序创建)。 我创建了定义模型的新应用程序,它重用了数据库中的一些现有数据。 在开发和测试阶段,一切正常,因为它在一个干净的工作表数据库上运行,但在尝试部署到生产时,我得到的消息如下: PGError: ERROR: column “email” of relation “users” already exists *** [err :: localhost] : ALTER TABLE “users” ADD COLUMN “email” character varying(255) DEFAULT ” NOT NULL 但是我在我的迁移中认为是这样的 class DeviseCreateUsers false t.recoverable t.rememberable t.trackable t.timestamps end end 如何使db:migrate忽略已存在的内容并仅更改新内容和/或新类型? 我在stackoverflow上看到了类似的问题,但没有人回答这个问题。 谢谢你的回答。

数据库连接池

我在Sinatra中创建了一个小聊天应用程序,在heroku上创建了jQuery。 它只是在用户提交消息时将消息插入数据库。 并且还每2秒下载新消息。 经过几分钟的测试后,它停止工作,我收到了一封heroku的电子邮件: 嗨, 我们注意到gisekchat应用程序有大量连接打开共享数据库。 由于性能原因,我们必须限制共享数据库的连接数。 您是否可以减少共享数据库的总连接数或移动到专用数据库? 您似乎没有利用连接池,并且正在为应用程序中的每个请求打开与数据库的新连接。 谢谢,-Chris 这是支持提交消息的动作(接收非常相似): post ‘/send’ do con = con = PGconn.connect($dbhost, 5432, “”,””,$dbname, $dbuser, $dbpass) con.exec(“insert into messages(usr, msg, date) values(‘#{params[:usr]}’,’#{params[:msg]}’, now())”) end 我该如何更改它以启用连接池?

Rails PostgreSQL数字字段溢出ERROR

我的架构上有一个十进制字段的价格,每次我尝试插入价格时,pg都带有此错误。 谁能给我任何光? 谢谢 组态 t.decimal “price”, :precision => 2, :scale => 2 错误 PG::Error: ERROR: numeric field overflow DETAIL: A field with precision 2, scale 2 must round to an absolute value less than 1. : INSERT INTO “items” (“category_id”, “name”, “price”, “updated_at”) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, […]

Rails,数据结构和性能

假设我有一个带有3个表的rails应用程序,一个用于提问,一个用于选项(可能是这个问题的答案),还有一个用于投票。 目前,在请求关于给定问题的统计数据时,我必须为每个选项进行SQL查询,该查询将在“投票”表(大约150万个条目)中查找并计算选择此选项的次数。 它很慢,需要4/5秒。 我想在问题表中直接添加一个列,它会存储统计信息并在每次有人进行投票时更新它们。 那是好习惯吗? 因为对于已经在投票表中的信息来说似乎是多余的,所以只加载它会更快。 或者也许我应该创建另一个表来保存每个问题的统计数据? 谢谢你的建议 !