一、遷移說明
ABP模板項目Entity Framework Core默認使用的是Sql Server,也很容易將數據庫遷移到MySQL,步驟如下。
二、遷移MySQL步驟
1、 下載項目
請到 http://aspnetboilerplate.com/Templates 下載一個新的項目,選擇ASP.NET Core 2.x標簽,Target Framework:選中.Net Core就可以了。
2、 移除默認SQL Server相關包
在EntityFrameworkCore項目下移除包Microsoft.EntityFrameworkCore.SqlServer、Microsoft.EntityFrameworkCore.Design

3、 添加MySql程序包
添加程序包Pomelo.EntityFrameworkCore.MySql、Pomelo.EntityFrameworkCore.MySql.Design

4、 修改源代碼
修改DbContextConfigurer
public static class AbpBasicDbContextConfigurer { public static void Configure(DbContextOptionsBuilder<AbpBasicDbContext> builder, string connectionString) { //builder.UseSqlServer(connectionString); builder.UseMySql(connectionString); } public static void Configure(DbContextOptionsBuilder<AbpBasicDbContext> builder, DbConnection connection) { //builder.UseSqlServer(connection); builder.UseMySql(connection); } }

5、 修改數據庫鏈接字符串
在web項目配置文件appsettings.json
"ConnectionStrings": {
//"Default": "Server=localhost; Database=AbpBasicDb; Trusted_Connection=True;"
"Default": "Server=localhost; port=3306; Database=AbpBasicDb; uid=root; pwd=****; Convert Zero Datetime=True"
}

6、 數據遷移
重新生成遷移文件
在下載啟動模板的時候,如果你選擇了包含 Module Zero。這里會有一些遷移文件會包含在你的項目中,但是這些文件是為Sql Server遷移使用的。請打開 .EntityFramework 項目中的Migrations文件夾,然后刪除這些遷移文件。遷移文件是以時間戳開始的。遷移文件的名字像這樣:201506210746108_AbpZero_Initial。

在刪除所有的遷移文件后,選擇你的 .Web 項目為開始項目,打開VS的包管理控制台,並在包管理控制台中選擇 .EntityFramework 項目作為默認項目。然后在控制台中執行下面命令:
Add-Migration "AbpZero_Initial"

在ABP后面版本會報錯:
Your startup project 'ABP.Web.Host' doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work. Ensure your startup project is correct, install the package, and try again.
只需要在Web.Host項目安裝對應版本的nuget包 Microsoft.EntityFrameworkCore.Tools,然后重新運行命令:Add-Migration "AbpZero_Initial" 即可
現在你可以使用下面命令來創建數據庫:
Update-Database

所有的事情都已完成,檢查 MySQL數據庫已生產成功

7、 完成MySQL遷移后運行瀏覽成功

