Рейтинг:0

Перенос данных Json с нечисловым уникальным идентификатором (из facebook...)

флаг cm

Я пытаюсь получить сообщения из facebook, используя мигрировать.

Мой вопрос:

в моей миграции conf.yml, как мне установить ключ source:ids для обработки нечисловых идентификаторов, таких как те, которые предоставлены facebook, которые выглядят так 1333842536759100_23306506123438


Некоторые детали:

Я получаю json из FB, который выглядит так:

{
   "данные": [
      {
         "permalink_url": "URL",
         "created_time": "2021-11-06T16:59:16+0000",
         "is_popular": ложь,
         "сообщение": "ххххх",
         "id": "1333842536759100_23306506123438"
      }, {...}
   ]
}

В моем исходном YML у меня есть:

источник:
  плагин: адрес
  data_fetcher_plugin: http
  data_parser_plugin: json
  track_changes: ложь
  URL:
    - «ХХХ»
  item_selector: данные
  поля:
    -
      имя: идентификатор
      label: 'Уникальный идентификатор поста'
      селектор: идентификатор
   [...]
  идентификаторы:
    я бы:
      тип: строка

Но когда я пытаюсь импортировать, я получаю:

Числовое значение вне диапазона: 1264 Out  
   значения диапазона для столбца "sourceid1" в строке 1: INSE  
  RT INTO "migrate_map_facebook_posts" ("source_ids_has  
  h", "sourceid1", "source_row_status", "rollback_actio  
  n", "хэш") ЗНАЧЕНИЯ (:db_insert_placeholder_0, :db_ins  
  ert_placeholder_1, :db_insert_placeholder_2, :db_inse  
  rt_placeholder_3, :db_insert_placeholder_4); Множество     
  (                                                      
      [:db_insert_placeholder_0] => c21c5df349e2f4591c8  
  34b5342c35d69fca6f9aed586b75227057791d41b097b          
      [:db_insert_placeholder_1] => 1333842536759100_23306506123438                                         
      [:db_insert_placeholder_2] => 3                    
      [:db_insert_placeholder_3] => 0                    
      [:db_insert_placeholder_4] =>                      
  ) 

               

Несмотря на то, что тип идентификатора установлен как «строка», и я вижу в своей БД столбец типа int (13)...

Как я могу обработать этот нечисловой идентификатор facebook?

Рейтинг:0
флаг cm

Оказывается, я искал не в том месте: мой yml был в порядке на этом этапе, но раньше я импортировал конфигурацию миграции с идентификаторами как целое число.

Проблема заключалась в том, что таблицы базы данных, созданные с помощью миграции (migrate_map_YOURMIGRATIONNAME и migrate_message_YOURMIGRATIONNAME ), не будут обновляться, если вы просто измените и повторно импортируете конфигурацию миграции.

В конце концов, мне пришлось удалить их вручную, чтобы они воссоздались с правильной структурой.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.