开始想用Abp框架来搭建公司的新项目,虽然一切还没有定数,但是兵马未动,粮草先行,我先尝试一下整个过程,才能够更好的去争取机会。
此次技术选型:Abp(Asp.Net core mvc)+mysql(8.0)+docker
Abp官网地址:https://aspnetboilerplate.com/
1、Nuget中安装mysql相关包,oracle公司提供的mysql包用起来还有问题,所以现在都是用的第三方的mysql包。
pomelo.entityframeworkcore.mysql
pomelo.entityframeworkcore.mysql.design
2、在EntityFrameworkCore层中找到XXDbContextConfigurer,修改DbContext中数据库配置,默认使用的SqlServer,修改为mysql。
3、修改连接字符串,在Web.Host或是Web.MVC下找到appsetting.json文件并修改其中的连接字符串。
"Default": "Server=xxx.xxx.xxx.xxx; Database=surrounddb;charset=utf8;uid=root;pwd=123456;"
我直接在服务器中的Docker下安装了一个mysql数据库,因此在开发环境下也将直接使用该数据库。
4、开始更新数据库,可将EntityFrameworkCore层下的Migrations文件夹删掉不影响,其中的是该版本历史过程中数据库迁移所带来的,于我们而言不重要了。
在程序包管理器控制台下选中EntityFrameworkCore,并开始输入命令
PM>Add-Migration name(取一个本次更新的名称)
提示信息:To undo this action, use Remove-Migration.
PM>Update-Database
没有差错下将会提示如下:
提示信息:Applying migration '20180809141445_InitAll'.
Done.
5、启动网站,成功打开并连接,如有表结构变化,更新数据库,只需再次运行之前两行命令即可。
注意:
1、我的mysql数据库版本已高于5.7,在mysql5.7时会报一些错误,诸如:Specified key was too long; max key length is 767 bytes之类的.
是由于该版本的mysql使用的编码方式不同,选择提升版本、通过修改mysql的编码方式解决(https://blog.****.net/NikoZhao/article/details/79521812)
2、连接字符串中如果加入了Ssl=None;将会出错,去掉即可。
2018-08-09,望技术有成后能回来看见自己的脚步