ABP Vnext使用mysql資料庫
阿新 • • 發佈:2020-08-16
ABP Vnext支援Sqlserver、Mysql、PostgreSql等資料庫,通過CLI模板建立的專案預設使用SqlServer,需要進行一定變更才支援其他資料庫,下面以使用Mysql舉例
1. 使用CLI建立一個帶UI的MVC專案
abp new Acme.BookStoreUi --template app --database-provider ef --ui mvc --mobile none
建立後項目如下
2. 使用Nuget安裝支援Mysql的包並對程式碼進行修改
- 在EntityFrameworkCore專案裡移除Volo.Abp.EntityFrameworkCore.SqlServer包
- 在EntityFrameworkCore專案裡新增Volo.Abp.EntityFrameworkCore.Mysql包
- 修復因移除SqlServer包而報錯的程式碼,把SqlServer改為Mysql
如下
using Volo.Abp.EntityFrameworkCore.SqlServer using Volo.Abp.EntityFrameworkCore.MySQL; typeof(AbpEntityFrameworkCoreSqlServerModule) typeof(AbpEntityFrameworkCoreMySQLModule) options.UseSqlServer(); options.UseMySQL();
3. 修改Acme.BookStoreUi.DbMigrations專案下appsetting.json檔案中的ConnectionStrings,修改為mysql資料庫連線字串,並複製進Acme.BookStoreUi.EntityFrameworkCore.DbMigrations專案。
4. 重建DbMigrations
首先,刪掉Acme.BookStoreUi.EntityFrameworkCore.DbMigrations下原有的Migrations資料夾,重建Migrations,我使用EF CLI方式重建
終端進入Acme.BookStoreUi.EntityFrameworkCore.DbMigrations,新建Migrations
dotnet ef migrations add initialDB
更新至資料庫
dotnet ef database update initialDB
執行Acme.BookStoreUi.DbMigrations專案初始化資料。
5.Acme.BookStoreUi.Web專案同樣修改appsetting.json檔案中的ConnectionStrings,執行即可