Сайт HR-Portal.ru переехал на Drupal 7
О сайте, многие из присутствующих слышали
Если коротко. Это более 40к нод, более 1м уников в месяц и 2м просмотров в месяц
Попытался вначале сам перевести, благо опыт апгрейда с 5-ки на 6-ку был.
Но, помучившись 3 дня, понял что не получается.
Обратился Виктору (RxB), который собственно и проделал гигантский объем работы по данному апгрейду.
За что ему огромное спасибо.
Технические моменты он опишет сам, я же остановлюсь на некоторых наблюдениях и впечатлениях.
1. Бэкапы. Делать их надо постоянно. Понятно что до обновления. Но и после, перед каждым включением модуля под 7-ку (то есть апгрейда данных с 6-ой версии) хорошо бы иметь бэкап. Ибо включиться может по разному.
2. Наличие 6-ой версии. Это сильно помогает при ручном переносе. А также, устаревшая версия может выполнять ряд функций, которые вы к примеру не успели включить и настроить в 7-ке. Например, модуль simplenews. Прекрасно отправил рассылку находясь на 6-ой версии, в то время как я настраивал этот модуль на 7-ке. Как оказалось, проще экспортировать подписчиков из базы 6-ой версии и импортировать в 7-ою, чем разбираться, почему не включается то или иное поле. Это же правило думаю относится и к визуальным редакторам. Имхо проще их удалить а уже потом ставить и настраивать заново. Тем более при смене друпал-версии модуля, часто меняется и его архитектура.
3. Темизация. Я заранее подготовил тему, но, поскольку не проверял с контентом, уже при использовании на сайте обнаружились глюки (лишний пейджер). Поэтому в срочном порядке пришлось переделывать (делал из бартика. Бартик не слишком хорош из коробки с точки зрения SEO, но это легко исправляется).
4. Вьюсы. Как ни странно, практически все заработали. Донастраивал вьюсы только те, где я выводил полями тизеры, это и понятно, так как были известные изменения в API. А в остальном, заработало сразу. Интерфейс Views 3 не сильно изменился. Правда пока не нашел, где вставлять текст выше и ниже собственно выводимого.
Вот пожалуй и все. Готов ответить на вопросы.
Комментарии
Сайт попал ко мне в виде каши из шестёрочной БД и ошмётков Drupal7, Валера неоднократно пытался обновить сайт самостоятельно, но всё время спотыкался.
Например, в таблице с алиасами были семёрошные поля и прочие радости апгрейда не доведённого до конца.
Сначала я привёл таблицы в порядок. Попутно всплыла ещё одна детать: в некоторых таблицах отсутствовали индексы от шестёрки. Затрудняюсь сказать, удалил ли индекс апдейт на семёрку или они отпали когда сайт с Drupal 5 переводился на Drupal 6, но производительности сей факт не добавляет.
Начал восстанавливать индексы. В части таблиц всплыли дубли, которые не давали вернуть индексы, приходилось делать финт ушами - копирование структуры и дальнейшая вставка через IGNORE INTO с последующим переименованием таблиц.
Переключение на седьмое ядро не прошло без проблем, но проблемы были в основном из-за неудачного апдейта, с помощью чая и чьей-то матери ядро удалось накатить.
После наката ядра выяснилось что не мигрировали алиасы и аватары у пользователей мигрировали криво. Алиасы просто не работали, с аватарами была такая беда:
В пятом и шестом друпале, данные об аватарке хранятся просто в таблице users в поле picture, в таблицу files они не заносятся. В седьмом друпале же, поле users.picture хранит просто fid, т.е. первичный ключ к таблице file_managed. В результате каких-то кривостей, у некоторых пользователей аватара не стало вообще, у других вместо аватара установился случайный файл, были даже zip-архивы.
Проблема была решена следующим образом: был взят бекап шестой версии, оттуда взята таблица users, с седьмого (уже продакшен на тот момент) была взята таблица file_managed, туда я занёс данные из users шестой версии, потом первым запросом я внёс информацию об аватарах в file_managed, вторым обновил аватары в продакшен-таблице users, аватары заработали.
Следующая беда с приватными сообщениями, в результате не знаю чего, таблица pm_index оказалась пустая, для решения этой беды, взял аналогичную таблицу с шестого друпала, посмотрел hook_update() в модуле приватных сообщений. Подправил схему БД в таблице system, в модуле проверка стоит, и удалось сделать обновление приватных сообщений.
Следующая интересная проблема была с пейджером, он показывал абсолютно некорректные данные. Нода, на ней 4 коммента, пейджер показывает 64 страницы. Экспериментальным путём было выяснено, что чего-то у Валеры с темой не то, но он быстро перенёс свою тему на Bartik и мы не стали на этой проблеме заострять внимание.
Вот такое было вкратце обновление
поздравляю
кстати, что по поводу нагрузки на сервер после переезда на 7-ку?)
1. Она меньше
2. Из-за того что шестой друпал работал со слетевшими индексами семёрка хоть как будет легче, так как индексов не было в таблице comments и node
еще вопрос. что лучше, сделать сайт на 6-ке и осенью перевести на 7-ку, или делать на 7-ке на бета-версиях доп.модулей? речь не о визитке идет)
Делай сейчас на семёрке. Быстро не сделаешь всё равно.
Я даже знаю один крупный, реально крупный проект, социальной сети, который делается русскими программерами для запада, который решено было стартовать на семёрке
большое спасибо)
поздравляю с переездом) в блоге отписывайтесь об ощущениях от 7-ки)
Вопрос в том, какие модули будут использоваться
По факту, "бета или не бета" это не вопрос. Вопрос "Работает-Не работает". К примеру симплнью я проверял только тестовую рассылку. Но вроде как страшных багов в исусах не пишут. У некоторых модулей авторы так и пишут. Версия для 7-ки есть, но не юзабельная пока.
Под 6-ку конечно проще сейчас делать, мануалы, модули, сниппеты - бери, да делай.
Захотите ли вообще осенью переходить - тоже вопрос, надо ли спешить?
"вроде как" - прекрасно характеризует ситуацию ))
Ну, ощущения то хорошие, много стало удобней. Думаю что начинать проект на 7-ке точно приятней.
Но, нехватает привычных вещей. Та же ссылка для отображения регионов у меня не показывается. Я не гордый, посмотрю в page.tpl.php Ну и по мелочи. Про вьюс я уже писал.
короче бекап для 6ой надо развернуть в БД рядышком чтобы допереносить ошметки данных .
(те же файлы для юзерей насоздавать)
эхехе. в субботу всех пошлю на йух и попробую кое что мигрировать таки чтобы ощутить вкус процесса
поздравляю с тем что отмучались
Спасибо. Желаю удачи
поздравляю с переездом
да... чувствую мой сушифан так навсегда и останется на 6-ке. Как представлю, во что может вылиться переезд на 7-ку, в голове только сразу: "чур меня, чур меня, не трогай!"
1. а в чем причина переезда именно сейчас? почему нельзя было подождать условно полгода-год пока 7ка стабилизируется?
2. не понял в чем выигрыш 7ки (этот вопрос двойной, и как пользователю и как админу сайта)
конечно поздравляю. дропед индексы это жесть.
PS: Я сейчас начал пару проектов с OG и как то даже не стал смотреть в сторону 7ки.
Валера, Виктор — молодцы! И ссылку на сайт ставь пожирнее.
Поздравляю!
Отдельный респект за смелость и проделанную работу
Поздравляю!
Поздравляю.
Отвечая на вопрос о том, почему так рано и вопрос о производительности
скажу, что переехать на 7-ку порекомендовал мой хостер. Свои сайты они на 7-ку уже перевели
Добавляю, что важно
?-ка не вешает сервер, не жрет непомерных ресурсов. Все работает нормально и штатно.
здесь вместо вопроса каждый должен подставить свою версию друпала)
Мои поздравления.
D7
Кстати, любителям бета-версий: все, что не стейбл, не поддерживается командой безопасности Drupal, и может содержать большое(ее) кол-во уязвимостей. Этот момент почему-то стыдливо умалчивается среди агитаторов семерки )))
впрочем, маркетинг всегда одерживает победу над здравым смыслом, чему удивляться ))
Потому что нет "такого момента". При наличии критической уязвимости команда безопасности ткнёт мэйнтенера носом в модуль в любом состоянии. Пример: [module=qviews], который никогда не был стабильным, и даже бэтой - только дев и альфа. Тем не менее - прикрыли (причина идиотская, но результат - на литццо).
дык если все займут выжидательную позицию, то 8-ку можно вообще не увидеть...
В том то и дело, что все не займут. Кому-то функционал 7-ки перевешивает все ее недостатки. У кого-то есть своя команда программистов, чтобы править баги (модулей и ядра) и исправлять уязвимости модулей самостоятельно.
А вот когда пиарят 7-ку как массовое решение - это вызывает удивление и насмешку.
Будем отрицать очевидное ? Ну ну
Ткнет, если кто-то доложит об уязвимости, и если будет хорошее настроение у того, кто этим будет заниматься. В любом случае, они этого делать не обязаны, и глупо на это рассчитывать.
А код стабильных версий периодически рассматривается самими членами команды безопасности (в этом можно убедиться, читая предыдущие описания уязвимостей и кто их репортил - зачастую это сами участники команды), более того, команда безопасности подходит к решению проблем в стабильных версиях со всей ответственностью, и декларирует эту ответственность.
Разницу видим или нет ?
тут еще зависит от того кому пиарят) я как то новичкам 7-ку не советую, но при этом хочу именно на 7-ке сделать пару проектов
Ну пиарят и пиарят, какая разница то. Те, кому это важно итак все понимают. penexe вон, как я понимаю на 6-ке клепает и не заморачивается вообще. Андед, судя по блогу и постам тут наоборот активно юзает семерку. Каждому свое.
А с точки зрения новичков..тут уж не вам судить А вот я могу сказать, что если начинать более менее серьезно изучать друпал, то можно и с седьмой версии начинать. Т.к. времени на то, что бы проникнуться хоть чуть-чуть уходит не мало. А это важнее модулей. В общем к тому времени как у новичков дело дойдет но багов, не работующих модулей, ситуация в семерке не сильно будет отличаться от шестой версии. Тем более, что для 7-ки, допустим есть модули не имеющие аналогов в шестой версии - это в противовес не портированным модулям. Ну это все имхо конечно
спорный момент) после 6-ки было только слегка непривычно, но почти все тоже самое. а в тоже время по 6-ке гораздо больше инфы
тем полезней начинать учить с семерки посмотрите на товарищей которые учили 4-5 вообще практически без инфы ;)) Ниньзя епт
не надо утрировать)
Пример http://drupal.org/node/987922
есть такой момент что дохрена багов в этом вашем стабильном релизе семерки не исправлены.
Есть проблемы с JS на 8 осле.
Много чего есть. такое ощущение что большинство разрабов пишут под мозиллу исключительно.
наверно их сотрудники)
а вот максим бы сказал, что под сафари )
всегда надо смотреть на имеющийся функционал
Например, тагаделик нет до сих пор. Кому то это критично, кто то может сделать сниппетом, кто то нарисует от руки, кому то все равно
OG - там кажется тоже темный лес
Про коммерц - я думаю все знают. Еще работать и работать
Поэтому, надо исходить из проекта, от своих ЗУНов и наличия времени.
Для новичков, запускающих свои проекты, я бы рекомендовал все таки 7-ку (при наличи конечно критичных модулей), так как главное на сайте это контент и юзеры. Эти 2 "сущности" (да простит меня Энди) являются определяющими. И для них, в 7-ке в принципе все есть
ждем блин.
мы пользуем og. и в 7ке он сырой + кардинальная переделка там. не ясно как данные переносить.
еще сыра довольно капча и еще модули. я у себя на блоге еще зимой делал обзор.
http://brainstorm.name/blog/migration-from-drupal6-to-drupal7-awaiting-b...
и ситуация с той поры не сильно изменилась. все в бетах и в альфах. читай - вести себя будет как бог на душу положит.
и резко переносить все с 6ки... стремновато. свой блог я на выходных либо перенесу, либо отработаю процедуру переноса. не знаю, на сыром коде жить не хочется. и да. гонка за релизами малость напрягает.
ниче, поддадутся тенденции браузеров и начнут клепать мажорные версии каждые 4 месяца ;))
Ну вон, каноникал клепает убунты каждые 6 месяцев - каждый релиз сырой вхлам, ещё месяц другой лучше сидеть на предыдущем. План губит качество )
ну вот все кричат, сырой, сырой, а я блин везучий походу, стабильно работает хоть ногой бей.
Везунчик наверно)))
Хотелось бы увидеть пруф, где написано, что команда безопасности шерстит все стабильные модули. А репорт уязвимостей от команды объясняется просто - по правилам, если ты обнаружил проблемы с безопасностью, то надо не багрепорт модулю писать, а в "службу безопасности", там её рассмотрят и "примут меры".
Проблемы в основном с железом - недодастоточное тестирование, поэтому либо работает либо нет
Слово "все", кардинально меняющее смысл, вы добавили самостоятельно, поэтому сами и ищите свой пруф
В данном процессе принято отдавать честь тому, кто нашел дырку и сообщил о ней, поэтому даже если дырка исправлена командой безопасности, просто так сами себя в credits они не ставят. Так что данный аргумент мимо..
Тогда хотелось бы услышать продолжение фразы:
а всё, что стэйбл?...
а все что стейбл - поддерживается, осматривается (специально уточню может осматриваться, а то опять придеретесь), и содержит меньшее кол-во уязвимостей. Трудно догадаться ? ))
С такой формулировкой соглашусь. Однако каково кол-во этих уязвимостей? Очевидно, что при обнаружении очередной бреши, она латается мэйнтейнером и в dev-модуле. То есть что сидеть на деве, что на стэйбле, на котором дыра ещё не обнаружена - разница не большая (но она есть, согласен). Плюс не стоит говорить, что дыры ищутся и находятся только в стабильных версиях. Да, security team, скорее всего, смотрит только стэйбл, но и другие разработчики (которые находят больше дыр) тоже мониторит модули и не только стабильные версии. Другое дело, что тот же друпал не будет верещать об уязвимости, если установлен dev-модуль и сам разработчик об этом может не узнать, если не подписан на securiry-news. Или модуль update вообще может быть отключен. Но это уже из разряда ССЗБ, таких разработчиков как-то и не жалко
С dev-модулями есть и другие проблемы, которые вроде бы очевидны, однако для многих они оказываются сюрпризом - он может перестать работать или может работать некорректно после обновления, т.к. апдейты БД пишуться только для релизов, а для разрабатываемой версии могут только поправить схему и всё.
не всегда
а работать он может перестать.
таки да. потому -dev и -beta сам не пользую.
ща делаю одну охренительную фичу для своей advimage, например и я бы не стал сам пользовать -dev версию. это то что собирается из git раз в сутки. и ща в данный момент один модуль из набора там поломан
это текущая ветка.
а те кто в танке пусть насласждаются -beta и -dev.
Согласен. Я имел ввиду, что надеятся на это не стоит )
ну вот, жди теперь 7.1. чтобы косяк в форуме поправить
а я из гитхаба утянул, и нормально вроде работает.
надо глянуть
(по сути, для старого проекта, можно теги нарисовать вообще вручную, пересчитывая еженедельно)
симплньюс что то не заработал. Тестовые уходят, а обычная нормальная нет. Пока выручает версия 6-ки
модулей нет.
Все настроено на VPS
Технологию Артем описывал на хабре
Данные по ВПС не помню, 4 гига оперативки вроде, и 2 ядра по 2Ггц (но это тоже, надо спрашивать Артема)
Посколько это ВПС, то мне сложно говорить о марке процессора и сервера в настоящий момент.
В общем, не так много ресурсов.
Под textarea плагина комментариев facebook'а везде:
"Warning: this comments plugin is operating in compatibility mode, but has no posts yet. Consider specifying an explicit 'href' as suggested in the comments plugin documentation to take advantage of all plugin features."
Это не друпал конечно. Но спасибо за багрепорт. Появилось недавно. Наверно Цукерберг чего-то сменил
ага, за ними глаз да глаз) наверно в Фейсбуке можно подписаться на изменения в виджетах, как "Виджеты ВКонтакте"? чтоб в курсе всегда быть
Обновил сегодня. Все поля в типах материалов, созданные мной, похерились.. Такого же не должно было быть? Не пойму почему..
UPD: проблема с исчезнувшими полями решается с помощью content_migrate, как описано тут: Migrating D6 Content Construction Kit (CCK) to D7 Fields