Indico. Обновление
2024-09-24
·
2 мин. для прочтения
Обновление Indico.
Содержание
1 Обновление пререквизитов
1.1 Postgres
- Делается, если нужно изменить версию PostgreSQL.
1.1.1 Бэкап базы данных
- Сделайте бекап базы:
sudo -u postgres pg_dump -U postgres indico > indico.sql
1.1.2 Обновление Postgres
- Версии, которая идёт в комплекте с дистрибутивом, достаточно.
- Но лучше установить версию поновее.
- Смотрим, какие версии в наличии:
dnf module list postgresql
- Установим postgresql-16:
sudo dnf module reset postgresql sudo dnf module enable postgresql:16 sudo dnf -y install postgresql-server postgresql-upgrade
- Проверьте установленную версию:
postgres -V
- Инициализируем базу данных:
postgresql-setup --initdb --unit postgresql
- Проверим, что в
/var/lib/pgsql/data/postgresql.conf
установлен алгоритм шифрования:password_encryption = scram-sha-256
- Запустим postgres:
systemctl enable --now postgresql
1.1.3 Восстановление базы данных
- Подключимся к базе данных:
sudo -u postgres psql
- Создадим базу данных (укажите необходимый пароль):
CREATE DATABASE indico; CREATE USER indico WITH PASSWORD '<password>'; CREATE USER indico; ALTER DATABASE indico OWNER TO indico; \connect indico; GRANT CREATE ON SCHEMA public TO indico; \q
- Добавьте расширение:
su - postgres -c 'psql indico -c "CREATE EXTENSION unaccent; CREATE EXTENSION pg_trgm;"'
- Проверьте подключение к базе данных:
psql --username indico --password --host localhost indico
- После подключения посмотрите параметры соединения:
\conninfo \q
- Восстановите данные из резервной копии:
sudo -u postgres psql -d indico -f indico.sql
2 Обновление Indico
- Остановим Celery:
sudo systemctl stop indico-celery.service
- Теперь переключитесь на пользователя
indico
и активируйте virtualenv:su - indico source ~/.venv/bin/activate
- Проверьте версию Python:
python -V
- Если версия < 3.12, то установим необходимую версию Python:
indico setup upgrade-python --force-version 3.12
- Обновите indico:
pip install setuptools pip install -U indico indico setup create-symlinks ~/web/
- Обновите плагины:
pip install -U indico-plugins
- Обновите схемы базы данных:
indico db upgrade indico db --all-plugins upgrade
- Перезапустите uWSGI:
touch ~/web/indico.wsgi
- Снова запустите Celery:
sudo systemctl start indico-celery.service
3 Установка Indico
- Если версия слишком старая, либо Вы обновили систему, лучше установить бинарники заново.
- Удалите старую установку python:
rm -rf /opt/indico/.pyenv
- Теперь переключитесь на пользователя
indico
:su - indico
- Загрузите установщик:
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
- Установите python-3.12:
source ~/.bashrc pyenv install 3.12 pyenv global 3.12
- Установите indico:
python -m venv --upgrade-deps --prompt indico ~/.venv source ~/.venv/bin/activate echo 'source ~/.venv/bin/activate' >> ~/.bashrc pip install setuptools wheel pip install uwsgi pip install indico