вообще-то есть два способа
1. сделать DDL sql, который из схему первоначальной базы сделает нужную. Обычно это делается сразу и все модификации атомарны в виде скриптов DDL. Автоматом можно поискать тулзы которые делают миграцию структуры или сравнивают базы. Самый тупой способ — сделать экспорт структуры со старой базы ( без данных ) и тупо по тексту diff из которого сделать уже нужный скрипт для изменения DDL
2. Взять даные из старой и перенести в новую. То есть экспортируем данные из старой и заливаем в новую.
В обоих случая структуру можно поменять так что будут проблемы, обычно уникальные или внешние индексы не встают ( данные не заливаются ). Тут есть два пути — отключить все проверки и триггеры и сделать insert ignore, а потом сравнивать и искать что не залилось и почему, потом включать и проверять консистентность. Либо заливать как есть и смотреть почему вылетело. Со скриптами DDL вариант только второй.
Я в такой же ситуации обычно делают экспорт/импорт данных, потому что перестраиваются индексы, дополнительная проверка и вообще старую базу в качестве бекапа использую, хотя скрипты DDL есть всегда ( они синхронизируют базы на локальном и внешнем дев-серверах ).
Если есть проблемы, то приходиться писать редактирование данных в слитом дампе или отключать фичи в новом, менять данные и включать их обратно.