Я имею следующую непростую ситуацию при использовании Ef6 с MySql: каждый раз, когда я создаю новые миграции я вносящие изменения в мою среду разработки с использованиемEF6 MySql: Update-Database -script генерирует SQL без запятой
Update-Database
, но когда я хочу, чтобы создать сценарий SQL для моих других сред (и держать под контролем источника) Я использую
Update-Database -Script
и сгенерированный SQL-то вроде этого:
CREATE TABLE `AddressType` (`Id` NVARCHAR(10) NOT NULL ,`Description` NVARCHAR(30) NOT NULL ,PRIMARY KEY (`Id`)) ENGINE=INNODB AUTO_INCREMENT=0
CREATE TABLE `Bank` (`Id` INT NOT NULL ,`CNPJ` BIGINT NOT NULL ,`Name` NVARCHAR(100) ,`WebSite` NVARCHAR(500) ,PRIMARY KEY (`Id`)) ENGINE=INNODB AUTO_INCREMENT=0
Когда я пытаюсь запустить сгенерированный скрипт на SQLyog и запустил его, я получаю сообщение об ошибке, когда у моего скрипта есть недопустимый синтаксис. Я считаю, что это потому, что EF добавила только одну точку с запятой в конце, так как она запускается, когда я добавляю точки с запятой вручную. Одна из проблем, возникающих при добавлении точек с запятой, заключается в том, что если сценарий не работает по какой-либо причине, база данных находится в противоречивом состоянии, то есть система миграции будет терпеть неудачу, потому что таблицы/столбцы уже будут существовать.
Есть ли какие-либо настройки, которые автоматически добавляют точки с запятой после каждого утверждения? Есть ли способ, которым я могу попросить MySql делать все или ничего при запуске моих скриптов/миграций?
Спасибо.