Вход

View Full Version : как правильно обновлять бд


Eugenek
16.08.2005, 11:35
Привет всем.

Есть две БД, одна для главного сайта (выставлена в Инет),
вторая рабочая(в локале). Обе БД находятся на одном хосте, с одним MySQL сервером.
Суть проблемы такова, в рабочую БД вносятся добавления, после этого делается export
и полученный дамп заливается в главную БД. При этом все изменения касающиеся кол-ва
посещений статьи, комменты, голосования, все это затирается.

Вопрос, как бы сделать так, чтобы заливались только новые данные, а все что уже было
оставалось как есть?

Soniks
16.08.2005, 12:35
Eugenek ну можно например для облегчения обновления дб в инете, после каждого обновления тереть рабочию базу, т.е. делать ее нульцовой, а затем делать дамп данных! не таблици.
т.е. что бы дамп содержал в себе только новое добавленное, а не всю базу.

Eugenek
16.08.2005, 12:46
Извини Soniks , но я что-то не совсем уловил мысль, т.е. сделал обновление, с рабочей на главную, потом что, уничтожаю все записи в рабочей БД, дык там же часть служебной инфы?

А во вторых в чем принципиальное отличие дампа, от экспорта всех таблиц?
Я пробовал импортировать даннвые выбирая в PHPmyadmin Тип экспорта "Update" или "Insert",
при импорте начинает ругаться, типа такая таблица уже есть :(
Поэтому получается только через "Replace"
Может я просто чего-то недопонимаю?

Soniks
16.08.2005, 13:25
Eugenek попытаюсь объяснить.
когда ты делаешь экспорт таблицы, тот же дамп, если посмотреть файл дампа, то там ты увидишь запросы на создание таблиц в БД и запросы добавления данных в эти таблицы.
и поэтому, когда ты делаешь импорт всей базы ты получаешь ошибку, что такая-то таблица уже существует. тебе надо сделать так чтобы в дампе содержались запросы только добавления данных и притом новых, тех которых еще нет. Это все зависит от того добавляете ли вы новые записи в БД или же обновляете старые. Конечно можно попробовать другой вариант:
phpmyadmin -> Экспорт -> Снимите галки с "Структура" -> поставьте галку "Игнорировать вставки" -> в поле "Экспорт" выберите нужные таблицы -> Пошел

в результате получите дамп, попробуйте его импортировать в основную БД.

Eugenek
16.08.2005, 14:25
Спасибо Soniks, кажется что-то начало проясняться, запросы на создание таблиц я действительно видел, я даже пробовал галочку метить в chek-box "Добавить IF NOT EXISTS".
Процентов 97, это добавление новых данных, изменяется что-то редко, да и если изменять, можно на месте руками.
Попробую вариант с "Игнорировать вставки", я просто не понимал что это означает, а тип экспорта я так понимаю "INSERT".
Сейчас попробую, потом отпишу, что получилось.

Ну что Soniks. очередной тебе Respect!
Как ты и написал сделал так, phpmyadmin -> Экспорт -> Снять галку с "Структура" -> поставить галку "Игнорировать вставки" -> в поле "Экспорт" выберите нужные таблицы -> Пошел

Я выбирал все таблицы для пущей проверки и тип экспорта "INSERT", действительно новые данные появились, а старая инфа осталось "новой".

Еще раз спасибо!

Soniks
16.08.2005, 17:51
Eugenek Всегда пожалуйста :)