Может ли Rails избежать выбора переменной среды VERSION в производстве - PullRequest
0 голосов
/ 25 апреля 2018

Я хочу разместить приложение Ruby on Rails на сервере с CentOS Linux release 7.4.1708 (Core).

Каждый раз, когда я захожу на сервер по SSH, я получаю переменную окружения VERSION со значением 7 по умолчанию.

Когда я пытаюсь запустить bundle exec rake db:migrate, Rails автоматически выбирает Version=7, и я получаю следующую ошибку:

ActiveRecord::UnknownMigrationVersionError:
No migration with version number 7

Если я вручную разверну приложение Rails, я могу unset VERSION и запустить bundle exec rake db:migrate. Но unset VERSION не работает с автоматическим развертыванием Capistrano.

Итак, я ищу обходной путь для запуска задачи миграции с Capistrano.

Есть ли опция в Rails, где мы можем указать задачу переноса, чтобы не искать VERSION переменную среды в рабочей среде.

1 Ответ

0 голосов
/ 26 апреля 2018

Если вы не можете изменить поведение рельсов, которое вы можете найти, откуда приходит переменная VERSION env, используйте env с разными пользователями, чтобы проверить, существует ли эта переменная env только для вашего конкретного пользователя или она глобальная. По умолчанию не существует переменной среды VERSION для CentOS 7, поэтому ее необходимо добавить вручную или по конфигурации, отметьте systemd services и init scripts, /etc/environment, /etc/profile.d ... и т. Д.

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