RusRedmineUpgrade » History » Version 5

Ruslan Khasanov, 2013-03-16 15:19

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