Project

General

Profile

RusRedmineUpgrade » History » Revision 5

Revision 4 (Ruslan Khasanov, 2011-08-05 20:53) → Revision 5/6 (Ruslan Khasanov, 2013-03-16 15:19)

[[RusGuide|Руководство]]->[[RusInstallation_guide|Руководство по установке]] 

 Оригинал: [[RedmineUpgrade|Upgrading an existing installation v.67]] v.44]] 

 h1. Обновление существующей установки 

 p{color:red}. Документация ниже, предназначена на обновлении до Redmine 2.x. 
 Вы можете просмотреть предыдущие версии для обновления до Redmine 1.x "here":/projects/redmine/wiki/RedmineUpgrade?version=53. 

 {{>toc}} 

 h2. Шаг 1 - Проверьте требования 

 Первый шаг к модернизации Redmine - проверить соответствие [[RusRedmineInstall#Требования|требованиям]] [[RusRedmineInstall|требованиям]] версии, которую вы собираетесь установить. 

 h2. Шаг 2 - Резервное копирование 

 Рекомендуется сделать резервную копию базы данных и файлов на сервер. Большинство обновлений являются безопасными, но никогда не помешает иметь резервную копию на всякий случай. 

 h3. Резервное копирование файлов 

 Все загруженные файлы хранятся в каталоге @files/@. files/. Вы можете скопировать содержимое этого каталога в другое место, чтобы создать cоздать резервную копию. 

 h3. MySQL база данных 

 Команда @mysqldump@ mysqldump может использоваться для резервного копирования содержимого вашей базы данных MySQL в текстовый файл.  
 Например: 
 <pre> 
 /usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz 
 </pre> 

 h3. SQLite база данных 

 В базе данных SQLite все содержащиеся в одном файле, так что вы можете сделать резервную копию путем копирования файла в другое место. 

 h3. PostgreSQL 

 Команда @pg_dump@ может быть использована для резервного копирования содержимого вашей базы PostgreSQL в текстовый файл. Вот пример: 

 <pre> 
 /usr/bin/pg_dump -U <username> -Fc --file=redmine.sqlc <redmine_database> 
 </pre> 

 h2. Шаг 3 - Выполнить обновление 

 Теперь пришло время для выполнения фактического обновления. Этот процесс является различным в зависимости от того, как вы скачали Redmine. Вам только нужно выполнить один из следующих вариантов. 

 h3. Вариант 1 - [[Download|Скачайте]] релиз в виде Если [[Download|скачивали]] релизы tar.gz или ZIP-файл 

 1. # Распакуйте новый архив программы в новый каталог. 

 2. каталог 
 # Скопируйте настройки базы данных, файл @config/database.yml@ в директорию @config@ новой директории установки. Если вы запускаете Redmine >= 1.4 с mysql и ruby1.9, измените адаптер базы данных на `mysql2`. 

 3a. установки 
 # Скопируйте настройки электронной почты, файл основных настроек @config/configuration.yml@ @config/email.yml@ в директорию @config@ новой директории установки 

 3b. Или, *если вы обновляете с версии ранее 1.2.0*, скопируйте настройки вашей почты из вашего файла @config/email.yml@ в новый файл @config/configuration.yml@, который может быть создан копируем существующего файла @configuration.yml.example@. 

 4. 
 # Скопируйте содержимое каталога @files@ @RAILS_ROOT/files@ в новую директорию установки (данная директория содержит все ваши загруженные файлы). 

 5. 
 # Скопируйте папки ваших установленных плагинов из своей директории @vendor/plugins@ (если вы обновляете с версии ниже 2.0.0) или из директории @plugins@ (если вы обновляете с версии выше 2.0.0) в новую @plugins@ директорию установки. Убедитесь, что вы копируете только те плагины, которые подходят для новой устанавливаемой версии Redmine. 

 6. установки 
 # Выполните следующую команду из нового корневого каталога Redmine: 

 
 <pre> 
 rake generate_secret_token config/initializers/session_store.rb 
 </pre> 

 Данная команда создаст 
 Выполните: 
 <pre> 
 rake generate_session_store 
 </pre> 
 Это сгенерирует файл (@config/initializers/secret_token.rb@) (config/initializers/session_store.rb) со случайными данными, используемый для защиты данных сессий. 

 7. сессии. 
 # Проверьте, нет ли тем, которые вы могли установить в каталог @public/themes@. Вы тоже можете их скопировать, но проверьте подходят ли они для обновленной версии. 

 *ОЧЕНЬ ВАЖНО*: не заменять файл @config/settings.yml@ config/settings.yml старой версией! 

 h3. Вариант 2 - Обновление с SVN Checkout 

 1. Перейдите # Перейти в корневой каталог Redmine и запустить следующую команду: 
 <pre> 
 svn update 
 </pre> 

 2. 
 # Если вы обновляете старую версию на 0.8.7 и выше или из trunk версии Redmine на r2493 или выше, необходимо сгенерить файл для защиты данных сессии. См. выше про генерацию session_store. 

 h2. Шаг 4 - Обновление базы данных 

 Этот шаг может изменить содержимое базы данных. Перейти на новый каталог Redmine и запустите перенос базы данных: 
 <pre> 
 rake db:migrate RAILS_ENV=production 
 </pre> 

 Если у вас установлены какие-либо плагины, вы также должны запустить миграцию их баз данных: 
 <pre> 
 rake redmine:plugins:migrate db:migrate:upgrade_plugin_migrations RAILS_ENV=production 
 rake db:migrate_plugins RAILS_ENV=production 
 </pre> 

 h2. Шаг 5 - Очистка 

 1. # Вам необходимо очистить кэш и существующие сессии: 
 <pre> 
 rake tmp:cache:clear 
 rake tmp:sessions:clear 
 </pre> 

 2. 
 # Перезагрузите сервер приложений (например, puma, mongrel, thin, passenger) 

 3. 
 # Наконец, перейдите передите в _"Admin "Admin -> Роли и разрешения"_, разрешения" , чтобы проверить/задать разрешения для новых возможностей, если таковые имеются. 


 h2. Возможные проблемы 

 h3. Rack n.n.n cannot be loaded because Rack n.n.n is already activated 

 При использовании Rails 2.3.5 можно получить следующее сообщение Rack 1.0.1 cannot be loaded because Rack 1.0 is already activated. 
 Для решения необходимо изменить файл action_controller в папке приложения по следующему пути vendor/rails/actionpack/lib/action_controller.rb 
 Найти строки 34 и 35, закомитить их и добавить строку чтобы выглядело так 
 <pre> 
 #gem 'rack', '~> 1.0.1' 
 #require 'rack' 
 load "/usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack.rb" 
 </pre> 
 Причем путь надо заменить на нужный 

 h3. SVN репозиторий не открывается 

 в логах мини веб-сервера thin (/var/log/thin/thin.0.logh) пишется что-нить подобное: 

 <pre> 
 svn: OPTIONS of 'https://Сервер/svn/проект': Server certificate verification failed: issuer is not trusted (https://Сервер) 
 </pre> 

 Лекарство:  
 В файле /usr/share/redmine/lib/redmine/scm/adapters/subversion_adapter.rb 
 найти строку  
 <pre> 
 str << " --no-auth-cache --non-interactive" 
 </pre> 

 и добавить ключ, включающий поддержку неизвестных SSL сертификатов: 
 <pre> 
 str << " --trust-server-cert --no-auth-cache --non-interactive" 
 </pre>