使用 dotnet ef 命令生成的迁移 SQL 脚本文件对 Azure MySQL DB 无效

时间:2021-06-29 13:16:10

标签: mysql .net azure entity-framework-core azure-pipelines

我们希望为 Azure MySQL 数据库的自动数据库架构迁移设置 CI/CD

但是,我们在生成迁移脚本时遇到了问题。

如果你能看到下面是我们生成的迁移脚本。

START TRANSACTION;
IF NOT EXISTS(SELECT * FROM `__EFMigrationsHistory` WHERE `MigrationId` = '20210625071551_v1')
BEGIN
    CREATE TABLE `activitytype` (
        `Id` int(11) NOT NULL,
        `Name` varchar(50) NOT NULL,
        `ShortName` varchar(20) NULL,
        PRIMARY KEY (`Id`)
    );
END ;
COMMIT;

我们为自动生成迁移脚本设置了构建管道。在发布管道中,我们使用上面附加的迁移脚本文件在 Azure MySQL DB 上部署更改,但它给了我们一个错误。

  • Azure 上的 MySQL 版本:8.0
  • DotNet 版本:.net 5
<块引用>

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'IF NOT EXISTS(SELECT * FROM __EFMigrationsHistory WHERE MigrationId = '20210' 附近使用正确的语法 2021-06-28T10:04:09.2150434Z ##[错误]错误:进程'C:\mysql-5.7.21-winx64\bin\mysql.exe'失败,退出代码为1

我们在构建管道中使用的命令:

dotnet ef migrations script -o $(build.artifactstagingdirectory)\Migrations\migrationscript_cli.sql -i

有没有办法生成可以在 MySQL 上成功运行的脚本?

0 个答案:

没有答案