Почему мои вторичные базы данных не подключаются к работе? - PullRequest
0 голосов
/ 28 января 2019

У меня есть приложение Ruby On Rails, которое использует две базы данных одновременно.Одна из этих баз данных всегда одна и та же, но другая динамически изменяется, если вы выбираете другой проект.

У меня есть файл конфигурации базы данных .yml для каждого:

MAINdb.yml (никогда не менялся)

project_1.yml

project_2.yml

...

project_n.yml

Если вы изменили проект, новый .yml читается и соединение с БД изменяется во время выполнения.

.yml пример:

  default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 30 } %>
  encoding: unicode
  username: xxx
  password: xxx
  timeout: 2400
  port: 5432

development:
  <<: *default
  host: xx.xx.xx.xx
  database: development

test:
  <<: *default
  database: development

production:
  <<: *default
  host: xx.xx.xx.xx
  database: production

Что ж, у меня "гибридное соединение" из-за необходимости использованиямного таблиц из MAINdb и 3 o 4 таблицы из вторичной базы данных.

Я делаю это вторичное соединение, как вы можете видеть здесь:

class AuxDbBase < ActiveRecord::Base  
  self.abstract_class = true
end

Пример модели:

class Example< AuxDbBase
    self.table_name ="example"
end

Динамическое соединение:

connection_db_params = YAML::load(ERB.new(File.read(Rails.root.join("config/db_config", "#{project}.yml"))).result)[Rails.env]
Example.establish_connection connection_db_params

Все это время работает в режиме разработки, но в производственном режиме у меня появляется эта ошибка:

ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: there is no "example" relationship
LINE 1: SELECT * FROM tabla WHERE type = 'xxx'

Кто-нибудь знает, где источникпроблема может быть?

Что может измениться, когда дело доходит до среды миграции, чтобы этоappening?

Я благодарен за любую помощь

Извините за мой английский

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