Доброго времени суток!
Никто не сталкивался с причудами при миграции с 6 на 7 версию, когда аватарки пользователей и остальные филды мигрируются нормально, а 'image' пишется в таблицу "file_managed", но не в порядке автоинкремента, а поверх уже существующих записей?
На скрине пример, в 317 fid после миграции вместо автара перезаписался совсем другой файл((
Вложение | Размер |
---|---|
screen3.jpg | 372.58 КБ |
Комментарии
Вам, сударь, от этого какая печаль?
никакой, только у юзеров автарки "летят"
PS скрин таблицы перед миграцией(бекап)
Апгдейд делался нон-стоп или были затыки и возобновлялся заново?
Думаю, что было второе.
Я бы ещё проверил наличие уникального ключа в fm, наверняка нет
в fm fid первичный(он же уникальный), uri уникальный
как таковых затыков не было, в том-то и трабл.
Боюсь трабл скорее всего в логике. Не понимаю, как мигрируются сначала аватарки юзеров, а затем в ту же таблицу с такими же id подгружаются другие cck поля. Это же
пихаос// Insert into the file_managed table.
// Each fid should only be stored once in file_managed.
db_merge('file_managed')
->key(array(
'fid' => $file->fid,
))
->fields(array(
'uid' => $file->uid,
'filename' => $file->filename,
'uri' => $file->uri,
'filemime' => $file->filemime,
'filesize' => $file->filesize,
'status' => $file->status,
'timestamp' => $file->timestamp,
))
->execute();
А кто вам сказал, что то, что вы подчеркнули должно быть идентичным? FID это всего лишь идентификатор номера файла. Идите в таблицу users, там будет поле picture. Вот число которое там будет написано ссылается на FID в таблице files_managed.
нам сказал это поле picture из таблицы users: Foreign key: file_managed.fid of user’s picture.
dcdr,
увы и ах, но там нигде не сказано что значения всех трёх полей в files_managed должно быть идентичным. Вернее сказать что таблица files_managed указывает просто на присвоенный файл по принципу users(f: picture) -> files_managed(f: fid) = FILE.
Ах, да, вы видимо забыли суть того, что в files_managed хранятся не только аватарки пользователей, но и вообще все залитые файлы через поле file/image. Соответственно добиться идентичности во всех трёх полях просто невозможно. Загляните ещё в таблицу files_usage, возможно это поможет вам решить проблему.
Да ну! Если перед миграцией в полях этой записи прописана аватарка, а миграция перезаписывает запись другим файлом, files_usage вряд ли поможетX-(
Выше есть скрин до миграции, там четко видно кто есть ху
похоже на то https://drupal.org/node/1176186
костыль https://drupal.org/node/1558192