Документация скрипта миграции базы данных

Привет! Поскольку плагин Multilingual, используемый в нашем экземпляре Discourse, больше не обновляется, а некоторые его функции поддерживаются в более новых версиях Discourse, мы хотим использовать скрипт миграции для переноса значений из базы данных в новые места.

Однако, изучая статьи вики на этом сайте или репозиторий Git проекта Discourse, я не нашёл документации по написанию скриптов миграции (какой класс наследовать, какие методы использовать и т.д.).

Не упустил ли я какую-то документацию? Помимо просмотра кода миграций, есть ли какие-либо советы по работе со скриптами миграции?

Заранее спасибо!

Когда мне нужно было перенести контент с платформы, для которой не было доступного скрипта Discourse, я не смог найти реальной документации по этим вопросам. Существующие скрипты были слишком сложны для меня, чтобы их реверс-инжинирить. В итоге я вручную импортировал каждую тему через консоль Rails — это не очень масштабируемый подход.

Если бы у меня был более крупный проект (и бюджет), я, вероятно, нанял бы @pfaffman для его услуги по миграции.

Что именно вы пытаетесь сделать? Если вы всё ещё работаете с Discourse, то это не миграция. Что и куда вы хотите перенести?

Если вы просто хотите перейти на актуальную версию Discourse, то, скорее всего, вам достаточно просто удалить плагин и выполнить обновление.

Если же вы больше не используете Discourse, то вам нужен не скрипт миграции для Discourse.

Хониксилия, насколько я понимаю ваш вопрос, вы проделали большую работу с плагином Pavilion Multilingual Plugin и хотели бы «перенести» эти данные в новые функции локализации контента Discourse Content Localization. Так ли это? (Я тоже не уверен, с чего бы начать.)

Под скриптом миграции я имею в виду скрипты миграции базы данных (db/migrate), наследующие ActiveRecord::Migration, которые используются для адаптации базы данных к изменениям в Discourse.

Например, у нас есть SQL-команды для переноса локали плагина Multilingual в нативную локаль Discourse.

Мой вопрос касается в основном скриптов миграции базы данных, чтобы автоматизировать выполнение SQL-команд при миграции базы данных на новую версию.

Я изменил заголовок темы, чтобы уточнить, что я имел в виду

Это обычные миграции Rails. Посмотрите:

Если вы планируете добавить что-то, рекомендую сделать это в виде плагина, а не форкать ядро :slight_smile: