Переместите Redmine Server, сохраняя внешнюю базу данных - PullRequest
0 голосов
/ 06 апреля 2020

В настоящее время у меня работает redmine на сервере nginx. Фактическая база данных MySQL находится на внешнем сервере, и все работает нормально.

Теперь я хотел бы переместить ее на сервер Apache на другом компьютере, в идеале без изменения / перемещения базы данных.

Возможно ли это, или мне всегда нужно экспортировать / импортировать базу данных независимо? Рад придерживаться той же версии Redmine (в моем случае 4.0.1., Ruby 2.5.1-p57, Rails 5.2.2, плагины не установлены). Если положительный, каковы условия на версиях Ruby / Rails? Должны ли они быть точно такими же, как у меня на старом?

Ответы [ 2 ]

1 голос
/ 07 апреля 2020

На схему базы данных не влияет версия ruby, только версия Redmine, потому что новые версии могут добавлять или удалять вещи в базе данных. Так что в вашем случае копирование вашего старого Redmine на новый сервер должно работать.

Однако вы должны убедиться, что новый сервер Redmine (возможно, новый IP-адрес) имеет надлежащие привилегии для доступа к базе данных MySQL.

И вы должны следовать руководству по обновлению, поскольку вашему новому серверу нужно вытащить и установить Ruby Gems, очистить старый кеш из папки tmp et c ...

https://www.redmine.org/projects/redmine/wiki/RedmineUpgrade

0 голосов
/ 08 апреля 2020

Ответы Александра вселили в меня уверенность в том, что это можно сделать, но в итоге я продолжал настаивать на своем первоначальном подходе, пока не получил эту работу, а не переключился на его предложения.

Я боюсь, что потерял след источники для различных битов, в первую очередь со страниц справки redmine.

Мое полное решение было

sudo apt update
sudo apt upgrade
sudo apt install build-essential libmysqlclient-dev imagemagick libmagickwand-dev ruby-full
sudo apt install apache2 libapache2-mod-passenger
sudo gem update
sudo gem install bundler

sudo curl -L https://www.redmine.org/releases/redmine-4.0.1.tar.gz -o /tmp/redmine.tar.gz
sudo tar zxf /tmp/redmine.tar.gz
sudo mv redmine-4.0.1 /opt/redmine
sudo touch /opt/redmine/Gemfile.lock
sudo chown www-data:www-data /opt/redmine/Gemfile.lock
sudo chmod a+w /opt/redmine/Gemfile.lock
sudo cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
sudo ln -s /opt/redmine/public /var/www/html/redmine

cd /opt/redmine
mkdir -p /opt/redmine/app/assets/config && echo '{}' > /opt/redmine/app/assets/config/manifest.js
bundle install
bundle exec rake generate_secret_token 

Обратите внимание, что приведенная выше строка манифеста относится только к моей конкретной версии Redmine, которая была несовместима с более поздними версиями звездочек. Также обратите внимание, что изменение разрешений a + w возможно чрезмерно, но я боролся с разрешениями в противном случае.

Затем мы должны сделать еще несколько ручных настроек. Откройте файл в текстовом редакторе:

sudo nano /opt/redmine/config/database.yml

и измените производственный процесс на следующий

production:
  adapter: mysql2
  database: myredminedatabasename
  host: mysqlserver.somewhere.com
  username: dbusername
  password: "dbpassword"
  encoding: utf8

Необходимо добавить строку PassengerDefaultUser в / etc / apache2 / mods-available / passenger .conf (оставьте две другие строки одинаковыми, даже если они немного отличаются)

<IfModule mod_passenger.c>
  PassengerDefaultUser www-data
  PassengerRoot /usr
  PassengerRuby /usr/bin/ruby
</IfModule>

Измените /etc/apache2/sites-available/000-default.conf, чтобы вставить следующее с другими разделами, чтобы apache знает, чтобы следовать символической ссылке в Rails. Также обратите внимание на настройку первой строки Document Root, которая была одним из моих личных камней преткновения.

DocumentRoot /var/www/html/redmine
<Directory /var/www/html/redmine>
    RailsBaseURI /redmine
    PassengerResolveSymlinksInDocumentRoot on
</Directory>

Нам также нужно скопировать содержимое папки files из / opt / redmine / files на старом сервере в новый сервер в том же месте.

Также скопируйте настройки электронной почты в /opt/redmine/config/configuration.yml.

Затем перезапустите сервер, и он должен работать.

...