Перестройка тестовой базы данных в производственную

#mysql #database

#mysql #База данных

Вопрос:

Я тестировал базу данных в MySQL в течение нескольких месяцев, используя ручные удаления, обновления и другие запросы. Справедливо сказать, что БД подверглась злоупотреблениям.

Теперь я хочу загрузить ее на свой рабочий сервер, но я хочу начать с новой копии. Есть ли способ сделать это?

Я не хочу сохранять какие-либо данные. Я просто хочу, чтобы для начала была хорошая, чистая база данных, которой не злоупотребляли в течение нескольких месяцев тестирования.

Комментарии:

1. Запустите резервную копию dev без данных и загрузите в live, затем создайте резервные копии любых статических таблиц daya на dev и загрузите в live?

Ответ №1:

Если вы используете mysqldump, укажите параметр —no-data:

 mysqldump --host=host --user=user --password=password --no-data db_name > structure.sql
  

Это создаст новую файловую структуру.sql, содержащую необходимые инструкции CREATE TABLE .

Если у вас есть какой-либо другой инструмент администрирования, который позволяет экспортировать, например, phpMyAdmin, у вас должна быть возможность оставить данные и экспортировать только структуру.

Комментарии:

1. Я использую Navicat. Я посмотрю, есть ли такая опция — что более чем вероятно.

Ответ №2:

Если вы не смогли найти эту опцию в своем программном обеспечении DB Manager, вы всегда можете использовать TRUNCATE TABLE <table_name>; для каждой таблицы. Это очищает таблицу и возвращает счетчику AUTO_INCREMENT значение 0 (если вы его используете). Если вы используете внешние ключи, вы можете обернуть весь свой усеченный запрос следующим образом:

 SET FOREIGN_KEY_CHECKS=0;

TRUNCATE TABLE <table_name1>;
TRUNCATE TABLE <table_name2>;

SET FOREIGN_KEY_CHECKS=1;
  

чтобы избежать внешних проверок.