Обновление движка блога
Как вы знаете, для этого блога я использую движок ghost.org. Это новый (относительно других) движок, который создал один из разработчиков WordPress. Финансирование было собрано на kickstarter.
До этой недели движок был в 0.1.x версии, что значит “использовать можно, но будем ломать”. Хотя он был достаточно стабилен последние 2 года, обновление всегда проходило с трудом: практически каждое обновление у меня были проблемы либо с npm
, либо с node_modules
, либо ещё с какими-то утилитами из мира node.js. Но обычно за час всё решалось: быстрая переустановка модулей, переустановка core
папки движка. Не в этот раз.
27 июня 2017 вышла 1.0 версия ghost.org 🎉 Письмо пришло в четверг, обновление я отложил на воскресенье.
Обновление настолько крупное, что весь процесс миграции со старых движков (описан тут) заключается в 3х шагах:
- сохраните ваши записи с помощью встроенного экспортера
- сохраните ваши картинки на сервере в папочке
- удалите всё, что осталось, и поставьте заново
Т.е совместимости нет (спасибо, что формат записей оставили). Не проблема, не в первый раз такое. Взялся обновлять, сохранил всё, что нужно, запустил привычные скрипты и … fail. Не работает. Почистил кэш, удалили модули (привет node.js), запускаю development - работает! Запускаю в production - валится. Самое смешное — валится с ошибкой подключения к MySQL, хотя я её не использую! Пошли часы изучения инетрнета на предмет ошибки… Что я только ни получал: и ошибку с базой данных, и ошибку в библиотеках npm, и ошибки, вообще не связанные с ghost.org. Уровень злости 11/10, спасибо, любимый движок!
Подготовились они к новой версии неплохо, даже сделали ghost-cli
утилиту, которая всё делает за тебя. Есть только один тонкий момент: если во время работы этой утилиты что-то идет не так (а это произойдет), работа утилиты останавливается, и продолжить нельзя. И перезапустить нельзя, потому что ошибка “папка не пустая, не могу установить сюда”. Серьезно? 2017 cli
утилита не может удалить/обновить файлы?
В итоге за 4 часа я поднял блог на новой платформе. Почему так? Разработчики из ghost.org решили использовать одну утилиту для установки или обновления движка, которая довольна сырая в данный момент. По умолчанию ghost.org рассчитывает, что вы будете работать с MySQL (2017 год). Если база данных другая, нужно будет поработать руками и обновить схему БД, в этом поможет knex-migrator, если заработает. С переходом на ghost-cli
изменилась и схема папок, куда и как устанавливается ghost (конечно, в документации это не описано). Также запуск движка происходит с помощью ghost start
, а не npm start --production
. Всё это можно найти в документации и … GitHub Issue с проблемами ghost-cli
. Стоит ли упоминать, что если вы обновили версию node.js, вам надо переустановить эту утилиту?
А так новый движок очень даже ничего, новая тема по умолчанию отличная, как вам?