Речь пойдет о переносе базы и файлов 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 восстанавливает дамп дословно в новую созданную нами базу данных с таким же именем.
сделать дамп базы mydb в файл с опцией очистки объектов до их создания и опцией указания формата архива (т.е. дамп) db.dump
дамп сохраняется в /var/lib/pgsql/ (оттуда потом надо его скопировать)
скопировали файл дампа БД на сервер, куда нужно восстановить редмайн.
удаляем старую базу redmin-a если ставили redmine и настраивали стандартную базу.
В утилите psql:
понятное дело, вместо testdb и test_user вставить те значения, которые были на предыдущем сервере.
восстанавливаем базу в созданную нами только что базу из файла db.dump
4) пересоздать заново сессию для БД в редмайне:
(про плагины — если есть — не забываем и читаем статью об этих командах из второго источника)
5) необходимо очистить сессию и куки (для применения новых настроек и учеток пользователей)
6) перезапускаем сервер приложений, на котором крутится редмайн
7) удостовериться, что владелец — именно тот, который нам нужен и база создана, можно набрать psql -l (зайдя перед этим под пользователя postgres)
Источники: www.postgresql.org/docs/8.4/static/app-pgrestore.html
www.redmine.org/projects/redmine/wiki/RedmineUpgrade
При установке и настройке 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