仅将 Table 数据从 MSSQL 迁移到 MySQL

Migrate Table Data Only from MSSQL to MySQL

负责将代码优先数据库从 MSSQL 移动到 MySQL。经过几个小时的功夫,我能够让 asp.net 核心项目正确部署所有迁移到 mysql。现在我需要迁移现有 mssql tables 中的数据。我看到提到 MySQL Migration Toolkit 的帖子,但那似乎是旧的。还尝试使用 MySQL Workbench 和 DBLoad 的数据加载器进行此操作,但没有成功。

Table 结构非常简单,带有增量整数键 + asp.net 核心识别框架 (GUID) 的常见废话。只需要在迁移过程中保持一致。既然在 MySQL 中设置了 table 结构,迁移数据的最佳方法是什么?如有任何建议,我们将不胜感激!

更新:更多细节... 我尝试使用 MySQL WorkBench 和 DBLoader 将数据库从 MSSQL 直接迁移到 MySQL。但是在 ASP.net 身份 table 的重要时间加上其他问题上失败了。 .net core api 在多个地方进行了大量转储,所以这个想法已经过时了。

从那时起,我将 api 控制器迁移到 mysql,然后不得不修复与 mssql fks 太长相关的无数问题和其他一些问题。

所以此时,控制器在 mysql 上工作。我只需要将所有数据转储到 MySQL 并保持 FKs 一致。

我对它有一些想法,例如 CSV 导出>导入 and/or 尝试其他一些事情。有什么建议吗?

尝试了 MySQL Workbench、DBLoad from DBLoad.com 等直接迁移数据,但都失败了。

所以最终找到了 "solution"...

首先,我修改了 ASP.net 核心项目:

        //services.AddDbContext<ApplicationDbContext>(options =>
        //    options.UseSqlServer(
        //        Configuration.GetConnectionString("DefaultConnection")));

        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseMySql(
                Configuration.GetConnectionString("DefaultConnection")));

然后转到程序包管理器控制台和运行:update-database

这创建了 MySQL 中的所有 table。

然后打开 Microsoft SQL Management Studio。右键单击数据库任务 > 生成脚本。已将所有内容保存到一个文件中,并选择了高级选项架构和数据。

然后在 Notepad++ 中打开数据库脚本并使用启用扩展搜索模式的替换应用以下编辑:

GO -> blank
[dbo]. -> blank
[ -> blank
] -> blank
)\r\n -> );\r\n
\r\n' -> '
DateTime2 -> DATETIME

在 Notepad++ 中进行编辑后,我从文本文件中删除了所有与 SET、ALTER 和 CREATE 相关的内容,然后将所有插入行复制到 MySQL Workbench 中 order 以确保在插入 table 的数据之前已经填充了外键。谢天谢地,没有要处理的存储过程!多么痛苦啊!

另外,该应用托管在 Azure 上。花了几个小时来解决 API 未连接到数据库的问题。起初这并不明显,因为该应用程序是假的,会向 Postman 抛出 404 错误。当我第一次尝试将 API 控制器连接到 MySQL 数据库时,我将数据库连接字符串输入到 Azure 的应用服务配置中。尽管 运行 该应用程序在本地运行良好,但它根本无法运行。最后在这个网站上找到另一个 post,提到从应用服务 > 配置 window 中删除数据库连接字符串。之后像冠军一样工作。所有具有自动递增键的数据都毫无问题地链接起来。

我对结果非常满意,希望我再也不用经历这个过程了!知道一个应用程序现在运行在一个完全开源的基础设施上总是一种很好的感觉。希望这对某人有帮助。祝你好运。

您可以使用 SqlServer Management Studio 内置的数据导出向导(任务 -> 导出数据) 或使用 SSIS 包迁移数据。