PageCharm

Разработчикам

Переход с NCms на PageCharm

Руководство разработчика PageCharm

Несовместимые имена API и пакетов, сохранение существующих данных и порядок обновления сайта на PageCharm 1.0.0.

Изменения в проекте сайта

Замените ссылки на пакеты NCms* на согласованный комплект PageCharm* версии 1.0.0. Пространство имён NCms стало PageCharm, типы с префиксом NCms стали PageCharm, интерфейсы INCms* стали IPageCharm*. Например, используются PageCharmPageModel, PageCharmDbContext, IPageCharmContentQuery, AddPageCharm, AddPageCharmUi, MapPageCharm и MapPageCharmUi. Общие типы CmsContent, CmsTemplate и другие Cms* сохраняют свои имена.

Переименованы solution, проекты, assemblies, ресурсы и каталоги в src/, samples/, tests/. Публичные static assets админки находятся под /_content/PageCharm.Ui/. После обновления пересоберите собственные модули и Razor-представления. Старые бинарные расширения требуют перекомпиляции.

Новые конфигурационные имена используют PageCharm и PAGECHARM_. Проверьте ключи ConnectionStrings:PageCharm, PageCharm:SetupToken, PAGECHARM_SETUP_TOKEN, параметры performance-примера и своё окружение. Sample принимает прежний ConnectionStrings:NCms как запасной вариант, setup endpoint также принимает прежний NCMS_SETUP_TOKEN. В собственной конфигурации сайта обновите ключи явно.

Схема аутентификации и cookie получили новое имя. После обновления редакторам потребуется снова войти в админку. Адрес /cms остаётся стандартным путём UI и настраивается через options.

База данных и файлы

Физические таблицы ncms_*, их индексы и ограничения сохранены для совместимости с существующими базами. Исторические идентификаторы EF-миграций и таблица __EFMigrationsHistory сохраняются. Переименование продукта не требует переименования таблиц и не должно создавать пустую базу вместо существующей.

Подключайте прежнюю базу через ту же строку подключения. Файлы ncms.db, ncms-import.db и существующие пользовательские базы автоматически не переименовываются. Пути storage, uploads и backups задавайте на существующие каталоги или buckets. Логический JSON и ZIP-бэкапы сохраняют формат версии 1.

Новые ссылки на пресеты имеют вид /_pagecharm/images/.... Endpoint /_ncms/images/... оставлен как alias для уже сохранённых ссылок в контенте. Ключи хранения существующих медиа сохраняются.

Sample-документация сохраняет идентификатор установленного модуля sample-ncms-docs-site и aliases ncms-home / ncms-docs, чтобы обновление находило прежние записи. Пути Razor-файлов обновляются на PageCharm. Файл docs/ncms.md сохраняет адрес для существующих инструкций Codex и содержит актуальное руководство PageCharm.

Порядок обновления

  1. Сделайте резервную копию базы и файлов. Сначала обновите тестовую копию с тем же провайдером БД.
  2. Закрепите одну версию пакетов PageCharm, обновите using, API, Razor, конфигурацию и собственные модули. Сохраните IDs и версии модулей, управляющих пользовательскими данными, если переименование не требует их повторного запуска.
  3. Для production примените недостающие миграции отдельным шагом и запустите с Validate. Само переименование не должно добавлять миграцию переименования таблиц.
  4. Проверьте число записей, дерево, URL, редактирование, роли, поиск, медиа и бэкапы. Проверьте старые ссылки на пресеты и новый путь static assets админки.
  5. Перед выпуском проверьте условия лицензии и используемые провайдеры. MySQL EF-пакет в текущий дистрибутив не входит.

Проверка миграции в этой задаче выполняется на отдельной базе, созданной прежним sample, и на чистой базе нового sample. PostgreSQL и MySQL требуют отдельной проверки на соответствующих серверах перед обновлением рабочих сайтов.

Репозиторий выпуска 1.0.0

В закрытом репозитории GitVerse находятся девять распространяемых библиотек, тесты и стандартный сайт документации. Прикладные сайты, базы, медиа, инфраструктурные секреты и прежняя Git-история не перенесены. Oracle EF MySQL-провайдер исключён. В форме импортёра используется нейтральный пример legacy.example.com; настройки источника задаются оператором. Пример документации получает setup-токен из конфигурации или окружения, без встроенного значения по умолчанию.