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> |