Проблема создания нового канального приложения с помощью dbmigrate - PullRequest
1 голос
/ 12 февраля 2020

После попытки создать новое приложение с помощью dbmigrate, приложение появляется, но без вкладки прав доступа в BackOffice. Классы, используемые в файле dbmigrate, были следующими:

Class1 = com.intershop.component.mvc.dbmigrate.preparer.AddChannelPreparer
Class2 = com.intershop.beehive.core.dbmigrate.preparer.domain.CreateApplicationPreparer 

В базе данных я заметил, что у всех других приложений есть две строки в таблице приложений, кроме этой. Один для приложения, а другой для приложения витрины. Приложение на витрине отсутствует.

Мой вопрос: какие классы мне следует использовать для создания приложения с помощью dbmigrate?

1 Ответ

2 голосов
/ 13 февраля 2020

Прежде всего позвольте мне объяснить те два подготовительных класса, которые вы использовали:

  • AddChannelPreparer , как следует из названия, создает новые каналы с заданным списком (витрины) приложений (свойство apps). Он пропускает создание канала, если тот уже существует.
  • CreateApplicationPreparer создает приложение на заданном сайте и в указанном домене-владельце. Это не обязательно должно быть приложение магазина. Скажем так, это приложение на сайте.

То, что вам не хватает при попытке использовать вышеуказанные средства подготовки в вашей конфигурации dbmigrate, - это некоторые необходимые дополнительные шаги - например, создание репозиториев, создание отношений домена приложения и, самое главное, приложение для управления вашей витриной (именно поэтому вам не хватает вкладки разрешений).

Суть в том, что я не знаю ни одного подготовителя, который запускает эти шаги. Моя самая безопасная ставка в том, что вы используете подготовитель ExecutePipeline для выполнения ProcessApplication-Create конвейера в sld_ch_base . Так как это конвейер, который выполняется из бэк-офиса, когда пользователь вручную создает новую витрину магазина. Убедитесь, что вы выполняете конвейер в контексте приложения backoffice.

...