Ruby on rails 无法在Heroku中的Postgres上加载Rails架构
我不明白为什么我的Ruby on rails 无法在Heroku中的Postgres上加载Rails架构,ruby-on-rails,heroku,pg,heroku-postgres,Ruby On Rails,Heroku,Pg,Heroku Postgres,我不明白为什么我的db:schema:load在Heroku上失败了。详情如下 heroku run rails db:schema:load --app appna DISABLE_DATABASE_ENVIRONMENT_CHECK=1 RAILS_ENV=production Running rails db:schema:load DISABLE_DATABASE_ENVIRONMENT_CHECK=1 RAILS_ENV=production on ⬢ appname... up, r
db:schema:load
在Heroku上失败了。详情如下
heroku run rails db:schema:load --app appna DISABLE_DATABASE_ENVIRONMENT_CHECK=1 RAILS_ENV=production
Running rails db:schema:load DISABLE_DATABASE_ENVIRONMENT_CHECK=1 RAILS_ENV=production on ⬢ appname... up, run.3508 (Standard-1X)
This method is not allowed with this Ruby version. current: 2.5.1, allowed version: < 2.5.0
-- enable_extension("plpgsql")
D, [2018-08-06T00:12:27.213314 #4] DEBUG -- : SQL (2.8ms) CREATE EXTENSION IF NOT EXISTS "plpgsql"
D, [2018-08-06T00:12:27.229821 #4] DEBUG -- : ↳ db/schema.rb:16
-> 0.1128s
-- enable_extension("postgis")
D, [2018-08-06T00:12:27.497698 #4] DEBUG -- : SQL (256.9ms) CREATE EXTENSION IF NOT EXISTS "postgis"
D, [2018-08-06T00:12:27.501310 #4] DEBUG -- : ↳ db/schema.rb:17
rails aborted!
ActiveRecord::QueryCanceled: PG::QueryCanceled: ERROR: canceling statement due to statement timeout
: CREATE EXTENSION IF NOT EXISTS "postgis"
/app/vendor/bundle/ruby/2.5.0/gems/activerecord-5.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:603:in `async_exec'
heroku run rails db:schema:load--app appna DISABLE\u DATABASE\u ENVIRONMENT\u CHECK=1 rails\u ENV=production
运行rails db:schema:load DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rails_ENV=production on⬢ 应用程序名。。。向上,运行0.3508(标准-1X)
此Ruby版本不允许使用此方法。当前版本:2.5.1,允许的版本:<2.5.0
--启用扩展(“plpgsql”)
D、 [2018-08-06T00:12:27.213314#4]调试--:SQL(2.8ms)如果不存在,则创建扩展名“plpgsql”
D、 [2018-08-06T00:12:27.229821#4]调试--:↳ db/schema.rb:16
->0.1128s
--启用扩展(“postgis”)
D、 [2018-08-06T00:12:27.497698#4]调试--:SQL(256.9ms)如果不存在,则创建扩展名“postgis”
D、 [2018-08-06T00:12:27.501310#4]调试--:↳ db/schema.rb:17
rails中止了!
ActiveRecord::QueryCanceled:PG::QueryCanceled:错误:由于语句超时而取消语句
:如果不存在,则创建扩展名“postgis”
/app/vendor/bundle/ruby/2.5.0/gems/activerecord-5.2.0/lib/active\u record/connection\u adapters/postgresql\u adapter.rb:603:in'async\u exec'
我使用的是Rails 5.2、Postgres 10、pg gem 1.0。事实证明,Heroku在执行这些语句的命令时默认会超时。通过控制台手动启用POSTGIS扩展,可以毫无问题地加载模式的其余部分。请阅读-总结是,这不是解决志愿者问题的理想方法,可能会对获得答案产生反作用。请不要将此添加到您的问题中。看起来您的语句超时了。您是在
数据库.yml
中配置的吗?