Pull to refresh

Восстановление redmine при переносе с одного сервера на другой

Речь пойдет о переносе базы и файлов redmine 1.0.1 c сервера с Fedora 14 на другой сервер redmine 1.2.0 на котором система CentOS 5.6.

При установке и настройке redmine предлагается поставить и инициализировать базу для работы редмайна. Мы так и сделали. Но возникла необходимость пользоваться редмайном на другом сервере, и наша база уже работает и настроена так, как нам нужно. Задача — безопасно перенести нашу базу на другое место. Мы создавали базу с отдельным владельцем — пользователь, созданный для работы и доступа к нашей БД. Это мы тоже учтем при переносе.


1) Скачать redmine, распаковать redmine в нужную папку. Например, в /var/local
2) Скопировать из старой redmine в новую папку files/
3) Сделать dump базы данных redmine на старом сервере:

!!! Владелец БД и таблиц в старой базе должен быть такой же как и в новой базе поскольку используемая нами команда с ключами pg_restore восстанавливает дамп дословно в новую созданную нами базу данных с таким же именем.

# su - postgres
-bash-3.2$ pg_dump -Fc mydb > db.dump
сделать дамп базы mydb в файл с опцией очистки объектов до их создания и опцией указания формата архива (т.е. дамп) db.dump
дамп сохраняется в /var/lib/pgsql/ (оттуда потом надо его скопировать)
# cp /var/lib/psql/db.dump /home/testuser
# scp /home/testuser/db.dump user@x.x.x.x:/home/user
скопировали файл дампа БД на сервер, куда нужно восстановить редмайн.
dropdb mydb
удаляем старую базу redmin-a если ставили redmine и настраивали стандартную базу.

В утилите psql:
-bash-3.2$ psql
postgres# CREATE USER test_user WITH password 'test';
postgres# CREATE DATABASE mydb WITH OWNER = test_user
ENCODING = 'UTF8' TABLESPACE = pg_default
LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8'
CONNECTION LIMIT = -1;

понятное дело, вместо testdb и test_user вставить те значения, которые были на предыдущем сервере.
postgres# \q
-bash-3.2$ pg_restore -d mydb db.dump

восстанавливаем базу в созданную нами только что базу из файла db.dump

4) пересоздать заново сессию для БД в редмайне:

#rake db:migrate RAILS_ENV=production

(про плагины — если есть — не забываем и читаем статью об этих командах из второго источника)

5) необходимо очистить сессию и куки (для применения новых настроек и учеток пользователей)

#rake tmp:cache:clear
#rake tmp:sessions:clear

6) перезапускаем сервер приложений, на котором крутится редмайн

#service httpd restart

7) удостовериться, что владелец — именно тот, который нам нужен и база создана, можно набрать psql -l (зайдя перед этим под пользователя postgres)

Источники: www.postgresql.org/docs/8.4/static/app-pgrestore.html

www.redmine.org/projects/redmine/wiki/RedmineUpgrade
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.