Mysql Workbench синхронизировать разные базы данных
Я использую Mysql Workbench для разработки базы данных для своего приложения.
Я использую как минимум две базы данных, например:
- my_local: моя локальная база данных тестирования, которая всегда синхронизируется с MySQL Workbench
- myserver_database: последняя база данных на сервере, имейте в виду, что эта база данных находится в рабочем состоянии, и пользователи будут обновлять ее, и я не могу потерять любую информацию, хранящуюся в ней.
Теперь я могу синхронизировать свою базу данных каждый раз, когда захочу, но я не могу найти способ обновить схему до конечного сервера, потому что у них разные имена, я получаю что-то вроде:
my_local => N/A
N/A <= myserver_database
В прошлом я просто переименовывал базу данных в MySQL Workbench, но, похоже, она больше не работает, возможно, из-за ошибки.
Я хочу иметь возможность синхронизировать одну и ту же схему рабочей среды с разными базами данных, независимо от имени базы данных. Я не нашел способа принудительно назначить имя базы данных даже путем изменения default_scheme.
Пожалуйста, имейте в виду, что я буду делать это много раз, поэтому лучше избегать сложных или опасных решений, если это возможно.
1 ответ
Я знаю, что этот вопрос довольно старый, но я смог сделать это на верстаке 5.2.40, и в Интернете не так много обновленных ресурсов, объясняющих, как это сделать.
Сначала я получил скрипт моей старой базы данных:
mysqldump -no-data myolddb > script.sql
(Я хочу синхронизировать только схемы, это можно сделать и в рабочей среде)
Теперь хитрость заключается в том, чтобы изменить скрипт, добавив use mynewdb;
в качестве первой строки, таким образом, рабочая среда не скажет N/A или бессмысленную схему по умолчанию.
На рабочем месте я создал EER-модель mynewdb, которая находится на моем сервере, а затем "База данных-> Синхронизировать с любым источником" и выберите в мастере модель "Схема данных" в "Файл сценария", используя сценарий, который я изменил изначально. И тогда мастер синхронизации работал как надо.