【问题标题】:Changing sqlite to pg将 sqlite 更改为 pg
【发布时间】:2019-12-27 08:48:51
【问题描述】:

谁能帮我解决我的问题,这是我的第一个草稿网站?

我的新问题:How come my code and postgres are not connecting

我尝试过 StackOverflow 解决方案,但似乎我一直遇到错误

这是我的database.yml

default: &default
adapter: postgresql
pool: 5
timeout: 5000

development:
    adapter: postgresql
    encoding: unicode
    database: blog_development
    pool: 5
    username: opeodumakin
    password: 6391
    port: 3000
    host: localhost

test:
    adapter: postgresql
    encoding: unicode
    database: blog_development
    pool: 5
    username: opeodumakin
    password: 6391


production:
    <<: *default
    database: db/production.sqlite3

我不断收到此错误

vendor/cache/gems/activerecord-5.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1013:in retrieve_connection' vendor/cache/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:118:inretrieve_connection' 供应商/缓存/gems/activerecord-5.2.3/lib/active_record/connection_handling.rb:90:in connection' vendor/cache/gems/activerecord-5.2.3/lib/active_record/migration.rb:554:incall' 供应商/缓存/gems/actionpack-5.2.3/lib/action_dispatch/middleware/callbacks.rb:28:in block in call' vendor/cache/gems/activesupport-5.2.3/lib/active_support/callbacks.rb:98:inrun_callbacks' 供应商/缓存/gems/actionpack-5.2.3/lib/action_dispatch/middleware/callbacks.rb:26:in call' vendor/cache/gems/actionpack-5.2.3/lib/action_dispatch/middleware/executor.rb:14:incall' 供应商/缓存/gems/actionpack-5.2.3/lib/action_dispatch/middleware/debug_exceptions.rb:61:in call' vendor/cache/gems/web-console-3.7.0/lib/web_console/middleware.rb:135:incall_app' 供应商/缓存/gems/web-console-3.7.0/lib/web_console/middleware.rb:30:in block in call' vendor/cache/gems/web-console-3.7.0/lib/web_console/middleware.rb:20:incatch' 供应商/缓存/gems/web-console-3.7.0/lib/web_console/middleware.rb:20:in call' vendor/cache/gems/actionpack-5.2.3/lib/action_dispatch/middleware/show_exceptions.rb:33:incall' vendor/cache/gems/railties-5.2.3/lib/rails/rack/logger.rb:38:in call_app' vendor/cache/gems/railties-5.2.3/lib/rails/rack/logger.rb:26:inblock in call' 供应商/缓存/gems/activesupport-5.2.3/lib/active_support/tagged_logging.rb:71:in block in tagged' vendor/cache/gems/activesupport-5.2.3/lib/active_support/tagged_logging.rb:28:intagged' 供应商/缓存/gems/activesupport-5.2.3/lib/active_support/tagged_logging.rb:71:in tagged' vendor/cache/gems/railties-5.2.3/lib/rails/rack/logger.rb:26:incall' 供应商/缓存/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13:in call' vendor/cache/gems/actionpack-5.2.3/lib/action_dispatch/middleware/remote_ip.rb:81:incall' 供应商/缓存/gems/actionpack-5.2.3/lib/action_dispatch/middleware/request_id.rb:27:in call' vendor/cache/gems/rack-2.0.7/lib/rack/method_override.rb:22:incall' 供应商/缓存/gems/rack-2.0.7/lib/rack/runtime.rb:22:in call' vendor/cache/gems/activesupport-5.2.3/lib/active_support/cache/strategy/local_cache_middleware.rb:29:incall' 供应商/缓存/gems/actionpack-5.2.3/lib/action_dispatch/middleware/executor.rb:14:in call' vendor/cache/gems/actionpack-5.2.3/lib/action_dispatch/middleware/static.rb:127:incall' 供应商/缓存/gems/rack-2.0.7/lib/rack/sendfile.rb:111:in call' vendor/cache/gems/railties-5.2.3/lib/rails/engine.rb:524:incall' 供应商/缓存/gems/puma-3.12.1/lib/puma/configuration.rb:227:in call' vendor/cache/gems/puma-3.12.1/lib/puma/server.rb:660:inhandle_request' vendor/cache/gems/puma-3.12.1/lib/puma/server.rb:474:in process_client' vendor/cache/gems/puma-3.12.1/lib/puma/server.rb:334:inblock in run' vendor/cache/gems/puma-3.12.1/lib/puma/thread_pool.rb:135:in `block in spawn_thread'

【问题讨论】:

  • 你在 Gemfile 中添加了gem pg 吗??
  • 是的,我确实添加了 gem pg
  • 这种格式是否反映了您的实际文件?缩进在 yaml 中很重要。
  • 什么是错误,你得到的“整个错误”。
  • 请在问题中添加完整的错误。

标签: ruby-on-rails ruby postgresql


【解决方案1】:
  1. 添加

    gem 'pg', '0.18.3'
    
  2. 更新你的 database.yml

    connection: &connection
      adapter: postgresql
      host: <%= ENV.fetch('DB_1_PORT_5432_TCP_ADDR', 'localhost') %>
      port: <%= ENV.fetch('DB_1_PORT_5432_TCP_PORT', '5432') %>
      username: postgres
      password: postgres
      pool: 5
      timeout: 5000
    
    development:
      <<: *connection
      database: development_db_name
    test:
      <<: *connection
      database: test_db_name
    
    production:
      <<: *connection
      database: production_db_name
    
  3. 重启服务器

【讨论】:

  • 这是正确的缩进,因为我得到 ActiveRecord::ConnectionNotEstablished 没有找到“主”的连接池。提取的源代码(在 #1013 行附近):1011 1012 1013 1014 1015 1016 def retrieve_connection(spec_name) #:nodoc: pool = retrieve_connection_pool(spec_name) raise ConnectionNotEstablished, “没有找到带有 '#{spec_name}' 的连接池。”除非池 pool.connection 结束
  • 嘿,请检查我已编辑答案的缩进
猜你喜欢
  • 2016-03-05
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 2010-12-03
相关资源
最近更新 更多