#!/bin/bash
#
# Migrate BS-StickyFirstPost -> Spolzer-StickyPost
#
DB="forum_xf5t"
BACKUP_FILE="xf_sp_sticky_post_backup_$(date +%s).sql"
echo "Резервное копирование xf_sp_sticky_post..."
mysqldump "$DB" xf_sp_sticky_post > "$BACKUP_FILE"
echo "Резервная копия сохранена в $BACKUP_FILE"
echo "Проверка количества записей для миграции..."
COUNT=$(mysql "$DB" -sN -e "SELECT COUNT(*) FROM xf_thread WHERE bs_is_sticky_first_post = 1 AND first_post_id > 0;")
echo "Будет мигрировано записей: $COUNT"
read -p "Продолжить? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "Отмена"
exit 1
fi
echo "Выполнение миграции..."
mysql "$DB" <<'SQL'
START TRANSACTION;
TRUNCATE TABLE xf_sp_sticky_post;
INSERT INTO xf_sp_sticky_post (thread_id, post_id)
SELECT t.thread_id, t.first_post_id
FROM xf_thread AS t
WHERE t.bs_is_sticky_first_post = 1
AND t.first_post_id > 0;
COMMIT;
SQL
echo "Проверка результата..."
RESULT=$(mysql "$DB" -sN -e "SELECT COUNT(*) FROM xf_sp_sticky_post;")
echo "Записей в xf_sp_sticky_post: $RESULT"
if [ "$COUNT" = "$RESULT" ]; then
echo "Миграция успешна"
exit 0
else
echo "Ошибка: количество записей не совпадает"
exit 1
fi