forgeplan migrate
Команда forgeplan migrate запускает отложенные миграции схемы для таблиц LanceDB в .forgeplan/lance/. Forgeplan иногда добавляет столбцы или изменяет структуру таблиц между выпусками (например, в v0.17 → v0.18 были добавлены столбцы для BM25 и русской морфологии). migrate применяет эти изменения на месте, сохраняя все артефакты, связи и доказательства, не требуя деструктивной повторной инициализации.
Когда использовать
Заголовок раздела «Когда использовать»- Сразу после обновления бинарного файла Forgeplan (
cargo install forgeplan,brew upgrade forgeplanили загрузки релиза). - Когда
forgeplan healthили любая другая команда сообщает о несоответствии версии схемы или ошибках “missing column”. - Перед возобновлением работы в рабочем пространстве, которое последний раз использовалось в старой версии.
Когда НЕ использовать
Заголовок раздела «Когда НЕ использовать»- В совершенно новом рабочем пространстве, созданном текущим бинарным файлом - мигрировать нечего.
- В качестве замены для перестроения поискового индекса - миграции изменяют схему, а не содержимое. Для перестроения индекса используйте
forgeplan scan-import. - В качестве инструмента восстановления для поврежденных рабочих пространств - миграции предполагают, что файлы LanceDB структурно валидны. В случае повреждения восстановите из резервной копии
forgeplan export.
Использование
Заголовок раздела «Использование»forgeplan migrate -h, --help Вывести справку -V, --version Вывести версиюПримеры
Заголовок раздела «Примеры»Пример 1: Миграция после обновления
Заголовок раздела «Пример 1: Миграция после обновления»cargo install forgeplan # upgrade to new versionforgeplan migrate # apply any pending schema changesforgeplan health # verify workspace is cleanСтандартная последовательность после обновления. migrate является холостой операцией, если ничего не изменилось, поэтому ее безопасно запускать безусловно после каждого обновления.
Пример 2: Исправление ошибок “missing column”
Заголовок раздела «Пример 2: Исправление ошибок “missing column”»forgeplan list# Error: column 'bm25_tokens' not foundforgeplan migrateforgeplan list# OKЕсли команда завершается с ошибкой на уровне схемы, migrate обычно является одношаговым решением.
Пример 3: Безопасный путь отката (если migrate недостаточно)
Заголовок раздела «Пример 3: Безопасный путь отката (если migrate недостаточно)»forgeplan export --output pre-migrate-backup.jsoncp -r .forgeplan .forgeplan-backup-$(date +%Y%m%d)forgeplan migrate# if something goes wrong:rm -rf .forgeplanforgeplan init -yforgeplan import pre-migrate-backup.jsonВсегда делайте резервные копии перед запуском миграций в рабочих пространствах, используемых в продакшене, с важной историей артефактов.
Как это вписывается в рабочий процесс
Заголовок раздела «Как это вписывается в рабочий процесс»migrate является частью пути обновления, а не ежедневного цикла работы с артефактами. Типичное обновление версии выглядит так:
forgeplan export --output pre-upgrade.json- резервная копия для безопасности- Обновление бинарного файла (
cargo install/brew upgrade) forgeplan migrate- применение отложенных изменений схемыforgeplan health- проверка чистоты рабочего пространства- Возобновление обычной работы (
forgeplan new,forgeplan validateи т.д.)
Если migrate недостаточно (например, из-за критического изменения схемы), вернитесь к циклу экспорта + повторной инициализации + импорта, описанному в forgeplan init.
Замечания по безопасности
Заголовок раздела «Замечания по безопасности»- Всегда экспортируйте данные перед миграцией рабочих пространств, используемых в продакшене.
migrateразработан как неразрушающий инструмент, но новые бинарные файлы могут содержать ошибки.forgeplan exportдешев и быстр; запустите его первым. migrateидемпотентен. Запуск его дважды подряд безопасен - второй запуск обнаружит отсутствие отложенных миграций..forgeplan/lance/игнорируется Git - если миграция оставит его в странном состоянии на одной машине,rm -rf .forgeplan/lance && forgeplan scan-importперестроит индекс из отслеживаемого markdown.- Версия схемы привязана к бинарному файлу. Не используйте бинарные файлы разных версий с одним и тем же рабочим пространством без запуска
migrateмежду ними.
См. также
Заголовок раздела «См. также»forgeplan export- обязательная резервная копия для безопасности перед обновлениемforgeplan import- путь отката, если миграция не удаласьforgeplan init- полное повторное инициализация в крайнем случаеforgeplan scan-import- перестроение производного индекса из markdownforgeplan health- проверка после миграции