Size: a a a

2020 November 06

M

Max in Drupal RU
Алексей Кузнецов
ну то, что есть всякие там плагины, это я знаю. Но какой-то маппинг есть и в стандартной миграции и он дико непонятный
Если нужно присвоить полям правильный тип, то наверное можно обойтись стандартными средствами
источник

M

Max in Drupal RU
Victor Stepankov
композер, маппинги, как сложно в этом вашем 8+ друполе
Хороший и универсальный ETL тул сложно найти
источник

АК

Алексей Кузнецов... in Drupal RU
Max
Если нужно присвоить полям правильный тип, то наверное можно обойтись стандартными средствами
У меня есть стандартное средство, но я не понимаю, как с ним обходиться. Там есть ключ map, который никак не задокументирован
источник

M

Max in Drupal RU
Смотрите, какой плагин. Открываете его. Там должен быть задокументирован в docblock
источник

АК

Алексей Кузнецов... in Drupal RU
плагин process_field
источник

АК

Алексей Кузнецов... in Drupal RU
и там нифига не задокументировано
источник

АК

Алексей Кузнецов... in Drupal RU
источник

АК

Алексей Кузнецов... in Drupal RU
Вот тут в 40 строке написал коммент, что конкретно непонятно
источник

M

Max in Drupal RU
Класс ProcessField смотрели?
источник

АК

Алексей Кузнецов... in Drupal RU
конечно смотрел. Почему всегда всё так тяжело? Если кто-то и берётся отвечать на мои вопросы, то сперва уходит несколько часов на то, чтобы доказать, что я не тупой 🤦
источник

M

Max in Drupal RU
Потому что люди с разным бэкграундом спрашивают
источник

M

Max in Drupal RU
Кстати, значения берутся из модулей ядра и прочих, которые предоставляют типы данных
источник

АК

Алексей Кузнецов... in Drupal RU
ну это понятно. Но непонятно, где идёт обработка ключа map и откуда в него могут прилететь значения типа d7_text - ведь в семёрке такого типа нет, а где он подменяется - хз
источник

M

Max in Drupal RU
Кажется есть плагин с ID d7_text
источник

АК

Алексей Кузнецов... in Drupal RU
плагин есть, это понятно. И вызывается этот плагин, потому что из типа поля прилетает строка d7_text, равная айдишнику поля. А вот откуда она там берётся?
источник

M

Max in Drupal RU
А где там?) Плагин ProcessField преобразовывает все известные ему типы данных, которые прописаны в map
источник

АК

Алексей Кузнецов... in Drupal RU
ну блин, миграция берёт данные из старой базы, преобразует их и кладёт в новую базу. В старой базе данных нет и не может быть поля с типом d7_text. Но эта бадяга прилетает в маппинг и по ней сопоставляется айдишник плагина. Вот откуда она туда прилетает?
источник

M

Max in Drupal RU
источник

M

Max in Drupal RU
d7_text - это не тип поля, а айди плагина. Тот, в свою очередь, знает, какие типы он преобразовывает: text, text_long, text_with_summary
источник

АК

Алексей Кузнецов... in Drupal RU
Max
d7_text - это не тип поля, а айди плагина. Тот, в свою очередь, знает, какие типы он преобразовывает: text, text_long, text_with_summary
То есть друпал инициализирует все плагины и в type_map ищет, какой из плагинов подходит для текущего поля? То есть выходит, если мне нужно смигрировать поле из контрибного модуля, то достаточно создать пустой класс плагина, но с нужной аннотацией?
источник