Redmine — открытое серверное веб-приложение для управления проектами и задачами.
Так вышло, что для реализации проекта «активного helpdesk с Telegram и 1С» под кодовым названием HIT, нужна свежая версия Redmine. В организации где проект планируется применить текущая версия 3.0, а последняя версия 5.0 ну и проект для которого планируется использовать Redmine уже написан под версию 5.0 (возможно это было ошибкой и я немного поторопился так как под 5ю версию не так много плагинов, а бесплатных плагинов и того меньше). Ну раз нужна 5.0, то буду обновлять до 5.0 подумал я и начал изучать материал, материал2, материал3 и т.д.
В целом картина ясна, делаем бэкап БД, файлов и плагинов из старой версии, разворачиваем новую и заливаем туда эти данные. Далее выполняем миграцию и готово. Дел-то на пару часов, подумал я, но получилось не сразу. По этому я написал данную статью, как заметку для самого себя и в помощь для людей которые будут в дальнейшем разворачивать проект HIT и им понадобится выполнить ту же процедуру. Не считаю данную статью инструкцией, так как при таком переносе я в итоге перенес только данные и файлы, а все плагины просто удалил, что для некоторых пользователей Redmine — большая потеря.
Что имею: «Старый Redmine» установлен на Windows Server 2012 R2 пакетом от Bitnami. На этот же сервер решено ставить «Новый Redmine». Поскольку разрыв между версиями приличный я подумал, что хорошо бы сохранить в рабочем виде «Старый Redmine» и поменял порт с стандартного 80 на другой, что бы Apache новой установки не ругался на занятый порт. К тому же наша цель сделать все так, что бы пользователи не заметили переноса Redmine. И так, поехали…
- Останавливаем Apache.
- Делаем бэкап старой версии. Команда в консоли:
mysqldump -u bitnami -p --databases bitnami_redmine --add-drop-database > bitnami_redmine.sql
Команда сработает если «Старый Redmine» был установлен из пакета Bitnami, если же нет, то логин юзера , пароль и название самой базы могут быть другими. Логин и пароль от БД можно узнать из файла конфигурации: «Расположение Вашей «Старой версии Redmine»»\apps\redmine\htdocs\config\database.yml».
В результате выполнения команды, в директории из которой выполнялась команда появится файл «bitnami_redmine.sql» — это БД Вашего Redmine. - Находим и копируем папки Files и Plugin. Эти папки лежат в корневой директории htdocs вашего приложения Redmine. У меня это «Расположение Вашей «Старой версии Redmine»»\apps\redmine\htdocs.
- Установка Redmine из пакета Bitnami — самое простое. Запускаем установщик, далее, далее готово. Попутно выбираем директорию установки, вводим логин и пароль локального админа вашего нового Redmine и настройки почту если нужно. После просто проверяем что все работает открыв в браузере сайт, по умолчанию: http://localhost/redmine/.
- Запись базы данных в новую версию Redmine. Команда:
mysql -u bitnami -p bitnami_redmine < bitnami_redmine.sql
которая выполняется в консоли из папки где лежит созданный на шаге №1 — файл бэкапа БД «bitnami_redmine.sql». Пароль все в том же файле конфигураций БД, но уже в директории новой установки Redmine — «Расположение Вашей «Новой версии Redmine»»\apps\redmine\htdocs\config\database.yml«. - Переносим папки с файлами — Files и плагинами — Plugins (Если уверены, что все плагины поддерживаются Вашей новой версией Redmine) в директорию «нового Redmine» — «Расположение Вашей «Новой версии Redmine»»\apps\redmine\htdocs.
- Выполним обновление базы данных под новую версию Redmine — командой:
rake db:migrate RAILS_ENV=production
но в моем случае пришлось запускать команду:
"C:\Bitnami\redmine-5.0.0-1\ruby\bin\bundle" exec rake db:migrate RAILS_ENV=production
Данную команду обязательно выполнять директории «нового Redmine» — «Расположение Вашей «Новой версии Redmine»»\apps\redmine\htdocs. При первом запуске может потребоваться выполнить:bundle install
, в моем случае это:
"C:\Bitnami\redmine-5.0.0-1\ruby\bin\bundle" install
и снова"C:\Bitnami\redmine-5.0.0-1\ruby\bin\bundle" exec rake db:migrate RAILS_ENV=production
- Обновление БД для плагинов все в той же папке, командой
rake redmine:plugins:migrate RAILS_ENV=production
в моем случае —"C:\Bitnami\redmine-5.0.0-1\ruby\bin\bundle" exec rake redmine:plugins RAILS_ENV=production
- Чистим кэш командой:
rake tmp:cache:clear
для меня:"C:\Bitnami\redmine-5.0.0-1\ruby\bin\bundle" exec rake tmp:clear
- Запускаем Apache и проверяем наш Redmine. Если все получилось, Вы сможете зайти в него под локальным пользователем.
Настройка почты
Наверняка в «Старом Redmine» использовалась отправка почты. За настройку почты отвечает файл: «Расположение Вашей «Новой версии Redmine»»\apps\redmine\htdocs\config\configuration.yml«. У файла строгий синтаксис и он чувствителен к пробелам и табуляциям. Можно попробовать скопировать конфигурацию почты из «Старого Redmine», но у меня такой трюк не сработал. Для меня актуальна отправка почты без авторизации и без шифрования. Вот рабочий для меня конфиг:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: АдресВашегоСервера
port: 25
domain: ВашДомен
authentication: :none
openssl_verify_mode: ‘none’