﻿
************************************
Утилита инициализации/обновления базы данных Cerebro
************************************

* Обновление - Безопасно ли это?
-------------------
Утилита обновления производит все действия на новой отдельной базе данных. 
Конечно, все данные из текущей базы данных будут переправлены в новую БД.
На последней стадии процесса обновления текущая БД будет переименована, без каких либо модификаций.
В случае успеха процесса обновления, новая временная БД будет переименована и займет место рабочей.

Позже после проверки работоспособности, вы можете удалить устаревшую БД.
Либо вы можете отменить все обновления и продолжить работу со старой доброй версией.

В любом случае иметь налаженный механизм регулярного бэкапапа. 
Как говорится, сис-админы которые не делают бэкапы, бывают молодые и старые. В вот старых которые не делают, не бывает...

* Что потребуется
-------------------
Питон версии 2.х требуется. Linux как правило комплектуются им по умолчанию. Для остальных добро пожаловать на http://www.python.org/ 
Вам надо убедиться, что директория с Питоном вписана в PATH.
Проверить это, а заодно и узнать версию можно исполнив в консоли 'python --version'.

* Что надо сделать
-------------------
1. Настройте config.py под ваше окружение. (читате ниже)
2. Исполните update скрипт

Будьте внимательны с файловыми UNIX пермиссиями.
На все скрипты должны быть права на чтение и исполнение.

* Как настроить config.py
-------------------

Это операцию надо сделать один раз, в дальнейшем обновления будут работать с существующим конфигом.

Пакет содержит пример config.py.example.
Файл содержит пояснения для параметров.

В первый раз вам надо скопировать его в специфичное место:
	UNIX:     /etc/cerebro.db.update/config.py
	WIN: %APPDATA%/cerebro.db.update/config.py (%APPDATA% обычно выгляди так C:\Users\<LOGIN>\AppData\Roaming)

т.е. в обоих случаях файл кладется в поддиректорию, 'cerebro.db.update'.

Вам может потребоваться изменить файл конфига чтобы под ваше окружение.

UNIX: Типичная проблема с запуском из под root, в случае использования ident идентификации.
   config.py расположен в /etc/cerebro.db.update,
   sudo запускает обновление из под другого пользователя (обычно 'postgres') который не может открыть /root/cerebro.db.update/config.py,
   причина - недостаток прав.
   В таком случае вы увидите ошибку "ImportError: No module named config"


* Запуск UPDATE script
-------------------

UNIX: Скрипт надо запускать из терминала или консоли, чтоб можно было ознакомиться с логом.

В зависимости от OS запустите
> update.<cmd|sh> <memoria-x.y directory>
В качестве аргумента задается директория с желаемой версией.

Изучите, что выдал скрипт.
В случае проблем, вы можете безбоязненно повторять попытки обновиться, после устранения причин ошибок.

