Имя администратора уже занято при создании нового клиента в ABP Angular - PullRequest
0 голосов
/ 24 мая 2018

Я использовал шаблон Angular 2 + Asp.net Core, который был загружен в 2018/05/23.

Что я сделал:

  1. Изменение базы данных с SqlServer на MySql
  2. Обновлено начальное значение для обновления имени инициализации администратора до "HostAdmin" и "TenantAdmin"
  3. Создание владельца в admin
  4. Получена ошибка "Имя роли TenantAdmin уже занято".enter image description here

Я исследовал код создания клиента, ошибка произошла на CreateStaticRoles во время создания клиента.

enter image description here

В этом методе будет создана новая роль, но здесь есть двойная проверка.Я не уверен, почему?а где взять данные RoleManagementConfig.StaticRoles?Я не могу найти ссылку на присвоение значения в исходном коде ABP для StaticRoles, кроме UT.

Отредактировано: Добавлена ​​логика проверки дублирования Abp, похоже, что она всегда не может пройти проверкув качестве статического имени роли / отображаемого имени уже используется арендатор по умолчанию.enter image description here

1 Ответ

0 голосов
/ 28 мая 2018

Если вы выберете «Включить страницы входа, регистрации, пользователя, роли и управления арендаторами» при загрузке шаблона запуска, в вашем проекте появятся некоторые файлы миграции.Эти файлы создаются для SQL Server.Удалите все файлы миграции в вашем проекте .EntityFramework в папке Migrations.Файлы миграции начинаются с отметки времени.Имя файла миграции должно выглядеть следующим образом

"201506210746108_AbpZero_Initial" После удаления всех файлов миграции выберите проект .Web в качестве проекта запуска, откройте консоль диспетчера пакетов Visual Studio и выберите проект .EntityFramework в качестве проекта по умолчанию.в консоли диспетчера пакетов.Затем выполните следующую команду, чтобы добавить миграцию для MySql.

Add-Migration "AbpZero_Initial"

Теперь вы можете создать свою базу данных с помощью следующей команды

Update-Database

Теперь вы можете запустить свой проект с MySql.

...