RusRedmineUpgrade » History » Version 4

Ruslan Khasanov, 2011-08-05 20:53

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