Как автоматически выполнить сценарий или процедуру MySQL после прямого проектирования из модели

Я построил модель EER в MySQL Workbench, которую я передаю инженеру для создания базы данных. Прямой инжиниринг работает отлично, и база данных создается из диаграммы, как и ожидалось.

Помимо таблиц, есть также несколько хранимых процедур (также известных как подпрограммы), которые я включил в модель. Эти подпрограммы предназначены для однократного запуска сразу после настройки базы данных. Они автоматически подставляют необходимые данные в таблицы.

Мой вопрос заключается в том, как я могу заставить процесс прямого проектирования автоматически вызывать/выполнять одну из этих процедур после создания таблиц.

На данный момент я должен перенаправить базу данных, а затем вручную вызвать хранимые процедуры?


person sparkyspider    schedule 30.04.2012    source источник
comment
У вас действительно так много хранимых процедур, что их слишком много для ручной работы?   -  person kristof_w    schedule 08.05.2012


Ответы (1)


На диаграмме EER на рабочем столе щелкните правой кнопкой мыши таблицу и выберите «Редактировать таблицу». Это откроет панель внизу с парой вкладок. Вкладки - это таблица, столбцы, индексы, внешний ключ и т. Д. Существует вкладка, называемая вставкой. Эта вкладка позволяет вставлять записи в базу данных модели.

Когда вы нажмете на вкладку «Вставка», она покажет сетку. Добавьте записи, которые вы хотите вставить в эту сетку. Убедитесь, что вы зафиксировали эти записи. Смотрите скриншот, например.

Вставка данных Workbench

Теперь, когда вы перенаправляете базу данных, на самом первом экране есть возможность генерировать операторы вставки. Отметьте опцию «форвард-инженер», и данные, которые вы хотите вставить, будут записаны в сценарии при создании модели. Сохраните сценарий, чтобы вы могли запускать его снова и снова, не заходя в рабочую среду MySQL.

Отметьте параметр

Я не нашел вариантов обновления, удаления или других манипуляций с данными в рабочей среде, но я думаю, что это то, что вы ищете.

ПРИМЕЧАНИЕ. Чтобы напрямую импортировать записи, вы не сможете сделать это через рабочую среду; нет варианта. Вы можете сохранить записи в файл. Однако для их импорта/создания вам нужно будет добавлять их по одному (из моделиста). Однако вы можете сделать резервную копию базы данных MySQL с уже существующими записями. Затем скопируйте эти операторы INSERT из сценария резервного копирования MYSQL в сценарий установки.

Шаги будут такими:

  1. Создать базу данных.

  2. Импортируйте файлы с записями setup/config во вновь созданную базу данных

  3. Резервная база данных

  4. Откройте файл резервной копии, затем скопируйте и вставьте нужные операторы INSERT в сценарий установки, созданный MySQL Workbench.

ОБНОВИТЬ:

Я провел несколько экспериментов, когда вы переходите к сценарию просмотра, который должен быть выполнен на этапе прямого проектирования, вы также можете в конце вызвать хранимые процедуры (как вы упомянули), отредактировав сценарий. После этого сохраните скрипт в файл и протестируйте.

Надеюсь, это поможет!

person Namphibian    schedule 04.05.2012
comment
Большое спасибо за Вашу помощь. Хранимая процедура генерирует 30 000 записей, которые необходимо вставить в базу данных. Другой заселяет страны и связанные с ними города. Наборы данных слишком велики для вставки вручную. Любые дальнейшие решения по-прежнему приветствуются. - person sparkyspider; 08.05.2012
comment
@Mark Van Wyk, эти хранимые процедуры, о которых вы упомянули, создаются во время прямого проектирования? - person Namphibian; 08.05.2012
comment
Namphibian, да, я добавил их как процедуры, и они автоматически создают процедуры во время прямого проектирования. - person sparkyspider; 08.05.2012
comment
Отметьте во время просмотра части скрипта непосредственно перед его запуском, что вы можете редактировать скрипт. Затем вы можете вручную вставить вызовы хранимых процедур в конец скрипта, чтобы выполнить их после создания таблицы. Я проверил это, и это работает. Просто сохраните сценарий, чтобы вы могли запустить его позже. - person Namphibian; 08.05.2012
comment
Я ищу автоматизированное решение, идея которого заключается в том, что другие разработчики могут просто перепрограммировать сценарий и забыть о нем. Тем не менее, я добавлю в инструкции для других разработчиков, чтобы они вручную добавляли рутинные вызовы в сценарий SQL перед его запуском. - person sparkyspider; 09.05.2012
comment
Большое спасибо за ваши усилия, вы будете награждены 1/2 вознаграждения за ответ с наивысшим баллом. - person sparkyspider; 09.05.2012