Изменить базу данных для соответствия модели - PullRequest
7 голосов
/ 08 февраля 2011

Первоначально я использовал Data Modeling в MySQL Workbench для проектирования базы данных, состоящей из серии таблиц (т.е. столбцов и связей).

Затем, используя Database -> Forward Engineer, я создал базу данных ивставил данные в таблицы.

Теперь я понял, что разработанная мной модель нуждается в некоторых изменениях, и поэтому я изменил некоторые таблицы вставленными столбцами.Мой вопрос: как заставить MySQL Workbench изменять таблицы?

Используя Database -> Synchronize Model, Update Source просто генерирует кучу CREATE TABLE IF NOT EXISTS SQL-операторов, и, поскольку таблицы существуют, ничегоизменения.

Ответы [ 3 ]

8 голосов
/ 13 июля 2012

То, что вы ищете, находится в меню модели База данных / Синхронизировать модель .

3 голосов
/ 18 февраля 2011

Поскольку я не мог заставить File -> Export -> Forward Engineer SQL ALTER Script работать, я сделал резервную копию данных, удалил таблицы, заново создал их, а затем импортировал данные.Я бы лучше нашел способ заставить MySQL Workbench генерировать команды ALTER на основании изменений в моей модели

0 голосов
/ 16 июля 2015

Ответ 2011 года более не актуален.Я изо всех сил пытался найти вариант в последней версии.Вот новая процедура (работает как минимум для MySQLWorkbench 6.2): ​​

Когда вы закончите редактирование модели, откройте Database -> Synchronize with Any Source

На шаге Select Source у вас есть 3 части

  • Источник : выберите Model Schemadata
  • Направление : выберите Live Database Server
  • Отправить обновления на : выберите, будет ли обновляться действующая база данных или если вы хотите сохранить только изменения в .sql файле

. Приступая к работе мастера, вы можете просмотреть таблицы и запросы SQL, которыебудет выполнен.Вы также можете игнорировать обновление некоторых таблиц.

...