Project

General

Profile

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>