Система управления задачами IPI.MANAGER™ PRO
Служба поддержки Вопрос-ответ Документация О разработчиках

Просто поменять DATABASE_ENGINE в PROFILE_DIR/share/settings.yaml нельзя, т.к. база при этом будет пустая. Правильный способ (например, если сейчас используется MySQL, но хочется переехать на PostgreSQL):

  1. Выключить сервер
  2. Сделать бекапы всего и вся. Если у вас sqlite -- скопируйте всю папку с профилем и файлом бд куда-нибудь. Если mysql или postgresql -- то нужно скопировать папку с профилем и плюс сделать дамп с сервера базы данных (пример для mysql: mysqldump -u USER -pPASS DATABASENAME > mysqldbdump.sql).

  3. Сделать бекап в профиле:
    •     ipi-admin backup > data.ipidump
  4. Создать новую пустую базу:
    •     postgres=#: CREATE DATABASE ipimanager;
      или:
          mysql> CREATE DATABASE ipimanager CHARSET utf8 COLLATE utf8_general_ci;
  5. Отредактировать PROFILE_DIR/share/settings.yaml. Для помощи по настройкам см. Настройки профилей. Например, для нашей новой базы в PostgreSQL:

    •     DATABASE_ENGINE: postgresql_psycopg2
          DATABASE_NAME: ipimanager
          DATABASE_USER: dbuser
          DATABASE_PASSWORD: dbpass
  6. Теперь нужно форсировать создание всех таблиц в новой базе:
    •     ipi-admin upgrade --force --yes
  7. Теперь нужно восстановить данные, которые мы сбекапили в третьем шаге. Стоит обратить внимание что restore убивает все данные которые есть в новой базе (если есть), но ничего не делает со структурой данных. То есть, если вы вместо создания новой бд для IPI.Manager указали в настройках какую-либо старую с чужими данными в таблицах -- IPI.Manager УДАЛИТ ВСЁ, превратив базу в точное состояние первой базы перед бекапом данных (п3). Аналогично, если указать в этом профиле базу данных другого профиля -- все данные от другого профиля будут затёрты новыми.

    •     ipi-admin restore < data.ipidump
  8. Теперь можно запустить внутренние тесты, чтобы проверить что все в порядке. Если будут какие-либо ошибки, это может говорить либо о проблемах этой версии IPI.Manager с Вашей операционной системой, либо с Вашей версией сервера базы данных. В любом случае необходимо сразу связаться с компанией-разработчиком для дальнейших инструкций. Команда selftest является "скрытой" (не показывается при ipi-admin help, но показывается при ipi-admin help --internal). Обратите внимание, внутреннее тестирование создаёт новую базу данных автоматически для теста (test_DBNAME), тем самым тестирование ни в коем случае не производится на данных основной базы, и никак их не затрагивает. Но, зато пользователю базы необходимы права на создание новой бд. В случае sqlite -- будет создан (и, затем, удалён) новый файл test_DBNAME.sqlite (DBNAME - название основной бд). В случае mysql/postgresql все несколько сложнее, т.к. пользователю нужно (вероятно, временно) дать гранты на CREATE DATABASE. Описание о том как это сделать смотрите в документации к своей бд. Запуск же комманды - просто:

    •     ipi-admin selftest
  9. Всё, теперь можно запускать сервер и тп.


Конфиденциальность Правовые ограничения Лицензия Контактная информация © 1998-2012 Компания IPI    Компания IPI_Tech