标签: rails-postgresql

Heroku db:push使用segfault失败

我正在为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 patchlevel 249)[universal-darwin11.0]

中止陷阱:6

这有点令人费解,原因有二:一,我在本地和heroku上使用postgresql数据库(在config/database.yml中正式声明).还有两个,红宝石1.8.7与哪里有什么关系?rvm设置为1.9.2,它在我的路径上,但是heroku正试图运行它?是什么赋予了?

谢谢,Steve Upstill

heroku rails-postgresql

21
推荐指数
1
解决办法
2571
查看次数

如何将序列添加到迁移并在模型中使用它们?

我想要一个Customer带有普通主键的模型和另一个用于存储自定义"客户编号"的列.另外,我希望db能够处理默认的客户编号.我认为,定义序列是最好的方法.我使用PostgreSQL.看看我的迁移:

class CreateAccountsCustomers < ActiveRecord::Migration
  def up

    say "Creating sequenze for customer number starting at 1002"
    execute 'CREATE SEQUENCE customer_no_seq START 1002;'

    create_table :accounts_customers do |t|
      t.string :type
      t.integer :customer_no, :unique => true
      t.integer :salutation, :limit => 1
      t.string :cp_name_1
      t.string :cp_name_2
      t.string :cp_name_3
      t.string :cp_name_4
      t.string :name_first, :limit => 55
      t.string :name_last, :limit => 55
      t.timestamps
    end

    say "Adding NEXTVAL('customer_no_seq') to column cust_id"
    execute "ALTER TABLE accounts_customers ALTER COLUMN customer_no SET DEFAULT NEXTVAL('customer_no_seq');"

  end

  def down
    drop_table …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-models rails-migrations rails-postgresql ruby-on-rails-3.1

18
推荐指数
1
解决办法
6646
查看次数

Heroku + Sidekiq:ActiveRecord :: StatementInvalid:PG :: UnableToSend:SSL SYSCALL错误:检测到EOF

嗨,我们正在使用独角兽和Sidekiq在Heroku的Cedar堆栈上运行.我们间歇性地得到以下错误

BurnThis ActiveRecord::StatementInvalid: PG::UnableToSend: SSL SYSCALL error: EOF detected

ActiveRecord::StatementInvalid: PG::ConnectionBad: PQconsumeInput() SSL SYSCALL error: Connection timed out
Run Code Online (Sandbox Code Playgroud)

有没有人知道这些错误的直接原因是什么?与我们的数据库连接太多了吗?我们已经通过以下方式设置了分叉:

unicorn.rb

worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
timeout 30
preload_app true

before_fork do |server, worker|
  Signal.trap 'TERM' do
    puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
    Process.kill 'QUIT', Process.pid
  end

  defined?(ActiveRecord::Base) and
    ActiveRecord::

Base.connection.disconnect!
end

after_fork do |server, worker|
  Signal.trap 'TERM' do
    puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
  end

  # other setup
  if …
Run Code Online (Sandbox Code Playgroud)

connection-pooling heroku rails-postgresql rails-activerecord heroku-postgres

18
推荐指数
1
解决办法
5789
查看次数

如何使用Ruby on Rails 4.0.1/PostgreSQL Hstore更新数据记录的值?

我遇到一个奇怪的问题,我必须是用户错误,但无法弄明白.

我正在使用Ruby 1.9.3-p194,Rails 4.01,PostgreSQL.

我有一个模型Customer,其中有一个名为data的列,它是一个hstore类型.出于某种原因,我无法使用任何新的键/值更新数据(hstore)列,也无法更新现有键的值.我可以插入并指定任何没有任何问题的键/值.

客户ID:1,first_name:"Mark",last_name:"Test",data:{"balance"=>"0"},created_at:"2013-11-27 14:39:09",updated_at:"2013- 11-27 14:39:09"

c.data["balance"] = "100"

c.save
Run Code Online (Sandbox Code Playgroud)

(0.2ms)BEGIN

(0.3ms)COMMIT => true

如果我执行update_attributes,它会保存它.

c.update_attributes({:data => {"balance" => "343"}})
Run Code Online (Sandbox Code Playgroud)

当我使用c.save时,我没有看到任何错误或异常!.有人有主意吗?

ruby-on-rails rails-postgresql hstore

18
推荐指数
3
解决办法
4793
查看次数

Heroku上的Rails 4.0.1,无法创建数据库

我无法得到rake db:migrate在Heroku上的rails 4.0.1 app上运行.

我猜我没有正确配置postgres ...但是阅读heroku上的文档并没有真正起作用,我不知道该怎么做.我对heroku或postgres不太了解.

任何帮助或资源将不胜感激.让我知道我还能发布什么.

(另外,我正在使用设计,如果这很重要)

我跑的时候heroku run rake db:migrate得到这个:

Running `rake db:migrate` attached to terminal... up, run.5077
PG::UndefinedTable: ERROR:  relation "users" does not exist
LINE 5:                WHERE a.attrelid = '"users"'::regclass
                                      ^
:               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                 pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
            FROM pg_attribute a LEFT JOIN pg_attrdef d
              ON a.attrelid = d.adrelid AND a.attnum = d.adnum
           WHERE a.attrelid = '"users"'::regclass
             AND a.attnum > 0 AND NOT a.attisdropped
           ORDER BY a.attnum

rake aborted!
PG::UndefinedTable: ERROR:  relation …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails heroku rails-postgresql ruby-on-rails-4

17
推荐指数
2
解决办法
2万
查看次数

Rails 5如何清除或删除生产postgres数据库

我正在尝试删除一个生产数据库,以便我可以重新开始.当我从rails 4升级到rails 5时,它现在保护生产数据库免于意外删除.它在运行时显示以下错误消息rake db:reset.

/app# rake db:reset
  ActiveRecord::SchemaMigration Load (1.8ms)  SELECT "schema_migrations".* FROM "schema_migrations"
   (1.6ms)  SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1  [["key", :environment]]
  ActiveRecord::SchemaMigration Load (0.2ms)  SELECT "schema_migrations".* FROM "schema_migrations"
   (0.3ms)  SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1  [["key", :environment]]
  ActiveRecord::SchemaMigration Load (0.3ms)  SELECT "schema_migrations".* FROM "schema_migrations"
   (0.2ms)  SELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = $1  [["key", :environment]]
rake aborted!
ActiveRecord::ProtectedEnvironmentError: You are attempting to run a destructive action against your 'production' database.
If you …
Run Code Online (Sandbox Code Playgroud)

ruby rake ruby-on-rails rails-postgresql ruby-on-rails-5

17
推荐指数
3
解决办法
1万
查看次数

Heroku上的Rails 3.1中的Postgres重音不敏感LIKE搜索

如何在Rails中修改搜索查询的where/like条件:

find(:all, :conditions => ["lower(name) LIKE ?", "%#{search.downcase}%"])

无论重音如何,结果都是匹配的?(例如métro= metro).因为我使用的是utf8,所以我不能使用"to_ascii".生产正在Heroku上运行.

postgresql ruby-on-rails unaccent rails-postgresql

16
推荐指数
2
解决办法
1万
查看次数

Heroku Rails无法为连接分叉新进程:无法分配内存

我有3个Rails应用程序都使用相同的代码库.2/3的应用程序运行正常,但其中一个给了我这个错误:

无法为连接分叉新进程:无法分配内存

在尝试查看Postgres日志时,它更加具体:

psql:bin // psql-9.2.1-64bit pv:bin // pv-1.1.4-64bit psql-9.2.1-64bit:
无法分叉新进程进行连接:无法分配内存
无法分叉新进程进行连接:无法分配内存
无法分叉新进程进行连接:无法分配内存
bin/brie:第146行:[::整数表达式预期pg_dump:
bin // pg_dump-9.2.1-64bit psql-9.2.1-64bit:
无法fork新进程连接:无法分配内存
无法分叉新进程进行连接:无法分配内存
无法分叉新进程进行连接:无法分配内存

这是一个相对较小的应用程序,尤其是数据方面.我试过重新推动一切,我尝试了heroku-restart,而Heroku的状态页面说它们很好.任何帮助,将不胜感激.

ruby-on-rails heroku rails-postgresql

15
推荐指数
1
解决办法
3891
查看次数

在Rails <4中设置Postgres JSON列的默认值

所以我开始使用Postgres JSON数据类型,现在你可以用它做很多有趣的事情.在我的一个Rails应用程序中,它还没有Rails 4(已经添加了对Postgres JSON的支持),我添加了一个这样的JSON列:

create_table :foo do |t|
  t.column :bar, :json
end
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何为列设置默认值.我试着像所有的变化{},'{}','{}'::json,'[]'::json等,但我要么得到一个错误的迁移运行,或者它根本不起作用,这意味着迁移运行时,但是,当我创建一个新的Foo,barnil.

json ruby-on-rails pg rails-postgresql ruby-on-rails-3.2

14
推荐指数
2
解决办法
2万
查看次数

如何在Rails之外使用ActiveRecord?

我正在构建一个基于六边形架构的Rails应用程序.

我的一个适配器是存储适配器(作为gem维护),它管理对数据库的访问,并为rails应用程序提供了简单的接口,以便在数据库中存储和查询数据.

我想ActiveRecord在这个gem中使用所有rake任务(创建,迁移,删除,回滚)来管理数据库.

我如何在轨道外使用AR,但是所有的rake任务?

ruby activerecord ruby-on-rails rails-postgresql ruby-on-rails-4

13
推荐指数
1
解决办法
7322
查看次数