Приложение Rails - продолжает пытаться подключиться к localhost, хотя внешняя база данных указана в database.yml - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть приложение rails, которое я пытаюсь запустить и запустить, я не создавал это приложение, однако из-за смягчающих обстоятельств мне приходится это делать.

Я на самом деле не знаю знаю что-нибудь о Ruby, так как это не язык программирования, которым я пользуюсь каждый день, поэтому, пожалуйста, потерпите меня

Мне удалось настроить внешнюю базу данных для работы с этим приложением. В моем database.yml я указал переменные среды, и команда rake db: create / migrate / seed успешно создала таблицы во внешней базе данных, которые я проверил.

Только для целей тестирования как среды разработки, так и среды разработки, изложенные в database.yml, используют переменные внешней базы данных, поэтому я могу исключить это как причину, по которой она не будет работать.

Database.yml:

default: &default
  adapter: mysql2
  encoding: utf8
  host: 127.0.0.1
  port: 3306
  username: root
  password: root

development:
  <<: *default
  database: production
  host: <%= ENV['DATABASE_HOST'] %>
  port: 3306
  username: <%= ENV['DATABASE_USERNAME'] %>
  password: <%= ENV['DATABASE_PASSWORD'] %>

production:
  <<: *default
  database: production
  host: <%= ENV['DATABASE_HOST'] %>
  port: 3306
  username: <%= ENV['DATABASE_USERNAME'] %>
  password: <%= ENV['DATABASE_PASSWORD'] %>

Как уже упоминалось, команда rake работает нормально, и я знаю, что она обращается к внешней базе данных, потому что, если я изменю пароль на неправильный, rake выдаст мне ошибку

Когда я запускаю сервер rails и пытаюсь получить доступ к API, я получаю следующую ошибку: сначала он не может получить доступ к mysql на 127.0.0.1, что, на мой взгляд, странно, поскольку предполагается, что он обрабатывает внешнюю базу данных, не localhost, тогда я установил mysql на той же машине, и затем я получил неверный пароль, что, очевидно, означает, что он пытается получить доступ к локальному экземпляру mysql, а не к внешнему. Я изменил root пароль, чтобы соответствовать, и теперь я получаю ниже, когда я получаю доступ к ссылке API:

(я запутал имя API)

ActiveRecord::NoDatabaseError

Unknown database 'production'
Rails.root: /var/www/html/****-api

Application Trace | Framework Trace | Full Trace
activerecord (4.2.8) lib/active_record/connection_adapters/mysql2_adapter.rb:23:in `rescue in mysql2_connection'
activerecord (4.2.8) lib/active_record/connection_adapters/mysql2_adapter.rb:10:in `mysql2_connection'
activerecord (4.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:438:in `new_connection'
activerecord (4.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `checkout_new_connection'
activerecord (4.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in `acquire_connection'
activerecord (4.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:349:in `block in checkout'
/usr/local/rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/monitor.rb:214:in `mon_synchronize'
activerecord (4.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:348:in `checkout'
activerecord (4.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in `block in connection'
/usr/local/rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/monitor.rb:214:in `mon_synchronize'
activerecord (4.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in `connection'
activerecord (4.2.8) lib/active_record/connection_adapters/abstract/connection_pool.rb:571:in `retrieve_connection'
activerecord (4.2.8) lib/active_record/connection_handling.rb:113:in `retrieve_connection'
activerecord (4.2.8) lib/active_record/connection_handling.rb:87:in `connection'
activerecord (4.2.8) lib/active_record/migration.rb:383:in `connection'
activerecord (4.2.8) lib/active_record/migration.rb:370:in `call'
actionpack (4.2.8) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
activesupport (4.2.8) lib/active_support/callbacks.rb:88:in `__run_callbacks__'
activesupport (4.2.8) lib/active_support/callbacks.rb:778:in `_run_call_callbacks'
activesupport (4.2.8) lib/active_support/callbacks.rb:81:in `run_callbacks'
actionpack (4.2.8) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
actionpack (4.2.8) lib/action_dispatch/middleware/reloader.rb:73:in `call'
actionpack (4.2.8) lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
actionpack (4.2.8) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
web-console (2.3.0) lib/web_console/middleware.rb:20:in `block in call'
web-console (2.3.0) lib/web_console/middleware.rb:18:in `catch'
web-console (2.3.0) lib/web_console/middleware.rb:18:in `call'
actionpack (4.2.8) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.8) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.8) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.8) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.8) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.8) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.8) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.8) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.10) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.10) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.8) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.10) lib/rack/lock.rb:17:in `call'
actionpack (4.2.8) lib/action_dispatch/middleware/static.rb:120:in `call'
rack (1.6.10) lib/rack/sendfile.rb:113:in `call'
rack-cors (1.0.2) lib/rack/cors.rb:97:in `call'
appoptics_apm (4.4.0) lib/appoptics_apm/inst/rack.rb:136:in `metrics_sampling_call'
appoptics_apm (4.4.0) lib/appoptics_apm/inst/rack.rb:40:in `call'
railties (4.2.8) lib/rails/engine.rb:518:in `call'
railties (4.2.8) lib/rails/application.rb:165:in `call'
rack (1.6.10) lib/rack/content_length.rb:15:in `call'
puma (3.12.0) lib/puma/configuration.rb:225:in `call'
puma (3.12.0) lib/puma/server.rb:658:in `handle_request'
puma (3.12.0) lib/puma/server.rb:472:in `process_client'
puma (3.12.0) lib/puma/server.rb:332:in `block in run'
puma (3.12.0) lib/puma/thread_pool.rb:133:in `block in spawn_thread'
Request
Parameters:

None
Toggle session dump
Toggle env dump
GATEWAY_INTERFACE: "CGI/1.2"
HTTP_ACCEPT: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
HTTP_ACCEPT_ENCODING: "gzip, deflate, br"
HTTP_ACCEPT_LANGUAGE: "en-GB,en-US;q=0.9,en;q=0.8"
REMOTE_ADDR: "127.0.0.1"
SERVER_NAME: "*****"
SERVER_PROTOCOL: "HTTP/1.1"
Response
Headers:

None

Любой идеи? Я перепробовал все, что мог придумать, я понятия не имею, почему он не получает сведения о соединении из database.yml

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...