RusRedmineUpgrade » History » Version 6
Ruslan Khasanov, 2013-03-17 11:26
| 1 | 1 | Ruslan Khasanov | [[RusGuide|Руководство]]->[[RusInstallation_guide|Руководство по установке]] |
|---|---|---|---|
| 2 | |||
| 3 | 5 | Ruslan Khasanov | Оригинал: [[RedmineUpgrade|Upgrading an existing installation v.67]] |
| 4 | 2 | Ruslan Khasanov | |
| 5 | 1 | Ruslan Khasanov | h1. Обновление существующей установки |
| 6 | |||
| 7 | 5 | Ruslan Khasanov | p{color:red}. Документация ниже, предназначена на обновлении до Redmine 2.x. |
| 8 | Вы можете просмотреть предыдущие версии для обновления до Redmine 1.x "here":/projects/redmine/wiki/RedmineUpgrade?version=53. |
||
| 9 | |||
| 10 | 1 | Ruslan Khasanov | {{>toc}} |
| 11 | |||
| 12 | h2. Шаг 1 - Проверьте требования |
||
| 13 | |||
| 14 | 5 | Ruslan Khasanov | Первый шаг к модернизации Redmine - проверить соответствие [[RusRedmineInstall#Требования|требованиям]] версии, которую вы собираетесь установить. |
| 15 | 1 | Ruslan Khasanov | |
| 16 | h2. Шаг 2 - Резервное копирование |
||
| 17 | |||
| 18 | Рекомендуется сделать резервную копию базы данных и файлов на сервер. Большинство обновлений являются безопасными, но никогда не помешает иметь резервную копию на всякий случай. |
||
| 19 | |||
| 20 | h3. Резервное копирование файлов |
||
| 21 | |||
| 22 | 5 | Ruslan Khasanov | Все загруженные файлы хранятся в каталоге @files/@. Вы можете скопировать содержимое этого каталога в другое место, чтобы создать резервную копию. |
| 23 | 1 | Ruslan Khasanov | |
| 24 | h3. MySQL база данных |
||
| 25 | |||
| 26 | 5 | Ruslan Khasanov | Команда @mysqldump@ может использоваться для резервного копирования содержимого вашей базы данных MySQL в текстовый файл. |
| 27 | 1 | Ruslan Khasanov | Например: |
| 28 | <pre> |
||
| 29 | /usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz |
||
| 30 | </pre> |
||
| 31 | |||
| 32 | 5 | Ruslan Khasanov | h3. SQLite база данных |
| 33 | |||
| 34 | В базе данных SQLite все содержащиеся в одном файле, так что вы можете сделать резервную копию путем копирования файла в другое место. |
||
| 35 | |||
| 36 | h3. PostgreSQL |
||
| 37 | |||
| 38 | Команда @pg_dump@ может быть использована для резервного копирования содержимого вашей базы PostgreSQL в текстовый файл. Вот пример: |
||
| 39 | |||
| 40 | <pre> |
||
| 41 | /usr/bin/pg_dump -U <username> -Fc --file=redmine.sqlc <redmine_database> |
||
| 42 | </pre> |
||
| 43 | |||
| 44 | 1 | Ruslan Khasanov | h2. Шаг 3 - Выполнить обновление |
| 45 | |||
| 46 | Теперь пришло время для выполнения фактического обновления. Этот процесс является различным в зависимости от того, как вы скачали Redmine. Вам только нужно выполнить один из следующих вариантов. |
||
| 47 | |||
| 48 | 5 | Ruslan Khasanov | h3. Вариант 1 - [[Download|Скачайте]] релиз в виде tar.gz или ZIP-файл |
| 49 | 1 | Ruslan Khasanov | |
| 50 | 5 | Ruslan Khasanov | 1. Распакуйте новый архив программы в новый каталог. |
| 51 | |||
| 52 | 2. Скопируйте настройки базы данных, файл @config/database.yml@ в директорию @config@ новой директории установки. Если вы запускаете Redmine >= 1.4 с mysql и ruby1.9, измените адаптер базы данных на `mysql2`. |
||
| 53 | |||
| 54 | 3a. Скопируйте файл основных настроек @config/configuration.yml@ в директорию @config@ новой директории установки |
||
| 55 | |||
| 56 | 6 | Ruslan Khasanov | 3b. Или, *если вы обновляете с версии ранее 1.2.0*, скопируйте настройки вашей почты из вашего файла @config/email.yml@ в новый файл @config/configuration.yml@, который может быть создан копированием существующего файла @configuration.yml.example@. |
| 57 | 5 | Ruslan Khasanov | |
| 58 | 4. Скопируйте содержимое каталога @files@ в новую директорию установки (данная директория содержит все ваши загруженные файлы). |
||
| 59 | |||
| 60 | 5. Скопируйте папки ваших установленных плагинов из директории @vendor/plugins@ (если вы обновляете с версии ниже 2.0.0) или из директории @plugins@ (если вы обновляете с версии выше 2.0.0) в новую @plugins@ директорию установки. Убедитесь, что вы копируете только те плагины, которые подходят для новой устанавливаемой версии Redmine. |
||
| 61 | |||
| 62 | 6. Выполните следующую команду из нового корневого каталога Redmine: |
||
| 63 | |||
| 64 | 1 | Ruslan Khasanov | <pre> |
| 65 | 5 | Ruslan Khasanov | rake generate_secret_token |
| 66 | 1 | Ruslan Khasanov | </pre> |
| 67 | |||
| 68 | 5 | Ruslan Khasanov | Данная команда создаст файл (@config/initializers/secret_token.rb@) со случайными данными, используемый для защиты данных сессий. |
| 69 | 1 | Ruslan Khasanov | |
| 70 | 5 | Ruslan Khasanov | 7. Проверьте, нет ли тем, которые вы могли установить в каталог @public/themes@. Вы тоже можете их скопировать, но проверьте подходят ли они для обновленной версии. |
| 71 | |||
| 72 | *ОЧЕНЬ ВАЖНО*: не заменять файл @config/settings.yml@ старой версией! |
||
| 73 | |||
| 74 | 1 | Ruslan Khasanov | h3. Вариант 2 - Обновление с SVN Checkout |
| 75 | |||
| 76 | 5 | Ruslan Khasanov | 1. Перейдите в корневой каталог Redmine и запустить следующую команду: |
| 77 | 1 | Ruslan Khasanov | <pre> |
| 78 | svn update |
||
| 79 | </pre> |
||
| 80 | |||
| 81 | 5 | Ruslan Khasanov | 2. Если вы обновляете старую версию на 0.8.7 и выше или из trunk версии Redmine на r2493 или выше, необходимо сгенерить файл для защиты данных сессии. См. выше про генерацию session_store. |
| 82 | |||
| 83 | 1 | Ruslan Khasanov | h2. Шаг 4 - Обновление базы данных |
| 84 | |||
| 85 | Этот шаг может изменить содержимое базы данных. Перейти на новый каталог Redmine и запустите перенос базы данных: |
||
| 86 | <pre> |
||
| 87 | rake db:migrate RAILS_ENV=production |
||
| 88 | </pre> |
||
| 89 | |||
| 90 | Если у вас установлены какие-либо плагины, вы также должны запустить миграцию их баз данных: |
||
| 91 | <pre> |
||
| 92 | 5 | Ruslan Khasanov | rake redmine:plugins:migrate RAILS_ENV=production |
| 93 | 1 | Ruslan Khasanov | </pre> |
| 94 | |||
| 95 | h2. Шаг 5 - Очистка |
||
| 96 | |||
| 97 | 5 | Ruslan Khasanov | 1. Вам необходимо очистить кэш и существующие сессии: |
| 98 | 1 | Ruslan Khasanov | <pre> |
| 99 | 5 | Ruslan Khasanov | rake tmp:cache:clear |
| 100 | rake tmp:sessions:clear |
||
| 101 | 1 | Ruslan Khasanov | </pre> |
| 102 | 5 | Ruslan Khasanov | |
| 103 | 2. Перезагрузите сервер приложений (например, puma, thin, passenger) |
||
| 104 | |||
| 105 | 3. Наконец, перейдите в _"Admin -> Роли и разрешения"_, чтобы проверить/задать разрешения для новых возможностей, если таковые имеются. |
||
| 106 | 1 | Ruslan Khasanov | |
| 107 | |||
| 108 | h2. Возможные проблемы |
||
| 109 | |||
| 110 | h3. Rack n.n.n cannot be loaded because Rack n.n.n is already activated |
||
| 111 | |||
| 112 | При использовании Rails 2.3.5 можно получить следующее сообщение Rack 1.0.1 cannot be loaded because Rack 1.0 is already activated. |
||
| 113 | Для решения необходимо изменить файл action_controller в папке приложения по следующему пути vendor/rails/actionpack/lib/action_controller.rb |
||
| 114 | Найти строки 34 и 35, закомитить их и добавить строку чтобы выглядело так |
||
| 115 | 3 | Denis Savitskiy | <pre> |
| 116 | 1 | Ruslan Khasanov | #gem 'rack', '~> 1.0.1' |
| 117 | #require 'rack' |
||
| 118 | load "/usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack.rb" |
||
| 119 | </pre> |
||
| 120 | Причем путь надо заменить на нужный |
||
| 121 | |||
| 122 | h3. SVN репозиторий не открывается |
||
| 123 | |||
| 124 | в логах мини веб-сервера thin (/var/log/thin/thin.0.logh) пишется что-нить подобное: |
||
| 125 | |||
| 126 | <pre> |
||
| 127 | svn: OPTIONS of 'https://Сервер/svn/проект': Server certificate verification failed: issuer is not trusted (https://Сервер) |
||
| 128 | </pre> |
||
| 129 | |||
| 130 | 3 | Denis Savitskiy | Лекарство: |
| 131 | 1 | Ruslan Khasanov | В файле /usr/share/redmine/lib/redmine/scm/adapters/subversion_adapter.rb |
| 132 | найти строку |
||
| 133 | <pre> |
||
| 134 | str << " --no-auth-cache --non-interactive" |
||
| 135 | </pre> |
||
| 136 | |||
| 137 | и добавить ключ, включающий поддержку неизвестных SSL сертификатов: |
||
| 138 | <pre> |
||
| 139 | str << " --trust-server-cert --no-auth-cache --non-interactive" |
||
| 140 | </pre> |