我正在为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
我想要一个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
嗨,我们正在使用独角兽和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
我遇到一个奇怪的问题,我必须是用户错误,但无法弄明白.
我正在使用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时,我没有看到任何错误或异常!.有人有主意吗?
我无法得到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) 我正在尝试删除一个生产数据库,以便我可以重新开始.当我从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) 如何在Rails中修改搜索查询的where/like条件:
find(:all, :conditions => ["lower(name) LIKE ?", "%#{search.downcase}%"])
无论重音如何,结果都是匹配的?(例如métro= metro).因为我使用的是utf8,所以我不能使用"to_ascii".生产正在Heroku上运行.
我有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的状态页面说它们很好.任何帮助,将不胜感激.
所以我开始使用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,bar是nil.
我正在构建一个基于六边形架构的Rails应用程序.
我的一个适配器是存储适配器(作为gem维护),它管理对数据库的访问,并为rails应用程序提供了简单的接口,以便在数据库中存储和查询数据.
我想ActiveRecord在这个gem中使用所有rake任务(创建,迁移,删除,回滚)来管理数据库.
我如何在轨道外使用AR,但是所有的rake任务?
ruby activerecord ruby-on-rails rails-postgresql ruby-on-rails-4
rails-postgresql ×10
heroku ×4
ruby ×3
activerecord ×1
hstore ×1
json ×1
pg ×1
postgresql ×1
rails-models ×1
rake ×1
unaccent ×1