ABP-VNext 用户权限管理系统实战01---AuthServer服务迁移数据库到mysql

发布时间 2023-12-17 20:04:54作者: 爱生活,爱代码

一、从github上获取源码后修改命名空间

下载dome后修改解决方案名为Bridge。

 

二、默认是连接sqlserver的,需要修改为可以连接mysql

修改appsettings.json文件的ConnectionStrings参数,准备一个可以连接的mysql,新建数据库bridge

{
  "ConnectionStrings": {
    "Default": "Server=xxx.xxx.xx.xx;Port=3306; Database=bridge; User=root; Password=xxxx;"
  }
}

 

 

三、修改类AuthServerDbContextFactory,使用mysql数据库

using System.IO;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
using Pomelo.EntityFrameworkCore.MySql.Infrastructure;

namespace Bridge.AuthServer.Host.EntityFrameworkCore
{
    public class AuthServerDbContextFactory : IDesignTimeDbContextFactory<AuthServerDbContext>
    {
        public AuthServerDbContext CreateDbContext(string[] args)
        {
            var configuration = BuildConfiguration();
            var builder = new DbContextOptionsBuilder<AuthServerDbContext>();
            builder.UseMySql(configuration.GetConnectionString("Default"),
                  ServerVersion.AutoDetect(configuration.GetConnectionString("Default")));

            return new AuthServerDbContext(builder.Options);
        }

        private static IConfigurationRoot BuildConfiguration()
        {
            var builder = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: false);

            return builder.Build();
        }
    }
}

 修改AuthServerHostModule.cs文件

 因为我系统中没有用到es,所以将项目中的es也注掉:Program.cs

 

 

四、执行数据库迁移命令

1、删除原来的Migrations文件,工具---》NuGet包管理器---》程序包管理器控制台

选中默认项目:Bridge.AuthServer.Host,并执行:Add-Migration bridge_init

 再执行:Update-Database 20231017011137_bridge_init

 可以看到数据表已迁移

 

五、启动Bridge.AuthServer.Host服务

报错: Could not find the bundle file '/libs/abp/core/abp.css' for the bundle 'Basic.Global'!

解决方案:找到授权的目录执行命令

E:\3--GitHub\bridge\applications\AuthServer.Host>npm config set proxy false

E:\3--GitHub\bridge\applications\AuthServer.Host>npm cache clean --force

E:\3--GitHub\bridge\applications\AuthServer.Host>npm config set registry http://registry.npmjs.org/

E:\3--GitHub\bridge\applications\AuthServer.Host>npm config set registry https://registry.npmjs.org/

E:\3--GitHub\bridge\applications\AuthServer.Host>abp install-libs

成功后再次启动Bridge.AuthServer.Host服务,成功的页面如下:

到此我们最重要的授权服务就好了。