从 ABP 官网生成的模版默认使用的是 SQL Server,但项目部署在 Linux 上,使用的是 MySQL,所以需要将数据库迁移到 MySQL,使用的版本 4.0.1, 具体步骤如下
1. 确认 MySql 默认使用的是 utf8,不然首次启动初始化数据时会报错
mysql> status; -------------- mysql Ver 14.14 Distrib 5.7.22-22, for Linux (x86_64) using EditLine wrapper Connection id: 9256 Current database: wid_auth Current user: wid_user_write@172.16.96.136 SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.7.22-22-log Source distribution Protocol version: 10 Connection: 172.16.96.136 via TCP/IP Server characterset: utf8mb4 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 TCP port: 3306 Uptime: 9 days 1 hour 4 min 7 sec Threads: 1 Questions: 90744 Slow queries: 0 Opens: 252 Flush tables: 1 Open tables: 182 Queries per second avg: 0.116 --------------
2. 删除默认 SQL Server 的引用包
在 EntityFrameworkCore 结尾项目中删除 Microsoft.EntityFrameworkCore.SqlServer、Microsoft.EntityFrameworkCore.Design 两个引用
3. 添加 MySQL 的 EF 包
这里有两个选择,Oracle 官方的和 Pomelo 的,之前 .net core 2.1 刚出的时候就使用 Oracel 官方的但是有问题并不支持 2.1,转换 Pomelo,虽然 Pomelo 稳定版也不支持,但是 有 Pre 版支持,就转使用 Pomelo 的,过不了几天 Pomelo 更新稳定版本也支持了,所以 Pomelo 在跟进方面比官方的好,这里推荐使用 Pomelo
在 NuGet 包管理中,将 Pomelo.EntityFrameworkCore.MySql 和Pomelo.EntityFrameworkCore.MySql.Design 两包添加到以 EntityFrameworkCore 结尾项目中
4. 修改 EntityFrameworkCore 项目中 DbContextConfigurer.cs 结尾的源码
public static class AbpDbContextConfigurer { public static void Configure(DbContextOptionsBuilder<AbpBasicDbContext> builder, string connectionString) { //builder.UseSqlServer(connectionString); 默认 SqlServer 改为 MySql builder.UseMySql(connectionString); } public static void Configure(DbContextOptionsBuilder<AbpBasicDbContext> builder, DbConnection connection) { //builder.UseSqlServer(connection); 默认 SqlServer 改为 MySql builder.UseMySql(connection); } }
5. 修改配置文件中的数据库连接字符串, Host 项目的 appsetting.json 文件
"ConnectionStrings": { //"Default": "Server=localhost; Database=AbpDb; Trusted_Connection=True;" "Default": "Server=localhost; port=3306; Database=AbpDb; uid=root; pwd=****; Convert Zero Datetime=True" }
6. 生成 MySQL 数据
-
删除 .EntityFrameworkCore 项目下 Migrations 目录下的所有 SQLServer 迁移文件。
-
将 Host 项目改为启动项目
-
打开VS的包管理,并 .EntityFrameworkCore 项目设为默认项目,执行脚本生成数据库
Update-Database
评论列表,共 0 条评论
暂无评论