Быстрый лёгкий надёжный форумный движок
Вы не вошли.
Страницы 1
К примеру, занимался слиянием двух баз. Правил в ручную. Ну, вы понимаете, надо в нескольких таблицах исправить, чтобы везде счётчики корректно считали, положение на досках соответствовало реальности, имена первых-последних и прочее... Потом пришлось добавить посты не последними, а сделать "врезку" по времени. Та ещё веселуха. Что-то начало надоедать...
Чем это можно автоматизировать? На ум приходит Forum cleanup. Помнится, на 1.2 ставил, что-то там работало, так и не понял. Есть у кого опыт? Какие альтернативы? Есть ли потребность во внешней утилите? Если очень актуально, можно накропать десктоповую под WIn с прямым подключением к MySQL.
Offline
Думаю "поправить" неудачное слияние уже зае*ёшся. Надо делать с нуля правильно.
Готового решения не знаю. Я бы поступил так: слил бы оба форума на свой localhost в одну базу (с разными префиксами), затем один из наборов принял бы за "основной", второй надо добавить к первому с изменением id.
Вручную бы выяснил макс. значение id для каждой "основной" таблицы, записал бы эту дельту на бумажке, составил бы план и написал текст запросов для копирования. Типа
INSERT INTO base_posts(id, topic_id, poster_id, message) SELECT id+2077, topic_id+568, poster_id+123, message FROM aux_posts
Всё, что нужно, это phpmyadmin и внимательность.
Потом если результат на localhost устраивает, слил бы назад на хостинг. Есть, конечно заморочка с текстовыми ссылками внутри сообщений, только это уже не такая острая проблема, можно как-нибудь потом поискать и поправить.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Offline
artoodetoo, а просто циферки итоговые поправить есть решение? Forum cleanup хоть как-то помогает? Что-то лениво ставить для теста...
Offline
Не знаю что такое forum cleanup.
В какой момент тебе хочется править циферки? Если у тебя в обоих форумах есть записи с одним и тем же уникальным ключом, их нельзя слить без потерь. В одной таблице не может быть двух записей с одним первичным ключом, это, блин, закон!
Можно сделать одно из двух:
а) UPDATE aux... SET id=id+xxx и затем INSERT INTO base ...SELECT ... FROM aux...
или как я писал выше
б) INSERT INTO base ...SELECT id+xxx... FROM aux...
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Offline
Да я не пытаюсь ключ продублировать, нужно устаканивать счётчики постов, юзеров, топиков... и т.д.
forum cleanup — у меня стоял когда-то...
Offline
forum cleanup должен устаканить кол-во постов и последнии посты, но он не выправляет первые посты тем, что может иногда понадобится.
Моя сборка FluxBB 1.5, ForkBB · сообщество
Offline
Страницы 1