Mysql Workbench синхронизировать разные базы данных - PullRequest
7 голосов
/ 04 ноября 2011

Я использую Mysql Workbench для разработки базы данных для своего приложения.

Я использую как минимум две базы данных, например:

  • my_local :моя локальная база данных тестирования, которая всегда синхронизируется с mysql workbench
  • myserver_database : конечная база данных на сервере, имейте в виду, что эта база данных находится в рабочем состоянии, и пользователи обновят ее и я не могу потерять любую информацию, хранящуюся в ней .

Теперь я могу синхронизировать свою базу данных каждый раз, когда захочу, но я не могу найти способ обновить схему до конечного сервера, потому чтоу них разные имена, я получаю что-то вроде:

my_local => N/A
N/A      <= myserver_database

В прошлом я просто переименовывал базу данных в MySQL Workbench, но, похоже, она больше не работает, возможно, из-за ошибки.

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

Пожалуйста, имейте в виду, что я буду делать это много раз, поэтому лучше по возможности избегать сложных и опасных решений.

1 Ответ

5 голосов
/ 19 сентября 2012

Я знаю, что этот вопрос довольно старый, но я смог сделать это на верстаке 5.2.40, и в Интернете не так много обновленных ресурсов, объясняющих, как.

Сначала я получил скрипт моей старой базы данных:

mysqldump -no-data myolddb > script.sql

(я хочу синхронизировать только схемы, это можно сделать и в рабочей среде)

теперь хитрость заключается в том, чтобы изменить скрипт, добавив use mynewdb; в качестве первой строки,таким образом, рабочая среда не скажет N / A или бессмысленную схему по умолчанию.

В рабочей среде я создал EER-модель mynewdb, которая находится на моем сервере, а затем «База данных-> Синхронизировать с любым источником» ив мастере выберите из «Model Schemadata» значение «Script file», используя сценарий, который я изменил изначально.И тогда мастер синхронизации работал как надо.

...