1С-Битрикс

Полное руководство по переносу контента в 1С-Битрикс между разными версиями без restore.php

Подробное руководство по безопасному переносу контента и файлов между разными версиями 1С-Битрикс без использования restore.php. Пошаговая инструкция по миграции базы данных, медиафайлов и настроек

sqlka.ruОпубликовано: Чтение: 5 мин.
Полное руководство по переносу контента в 1С-Битрикс между разными версиями без restore.php

Миграция сайта на 1С-Битрикс — комплексная задача, особенно при необходимости переноса данных между различными версиями платформы. Стандартный механизм восстановления через restore.php часто оказывается неэффективным в таких сценариях, что требует применения альтернативных методов. В этом руководстве мы детально рассмотрим, как безопасно перенести контент и файлы между сайтами на разных версиях Битрикс, включая случаи работы с нелицензионными редакциями.

Почему restore.php не работает при переносе между разными версиями

restore.php — штатный инструмент 1С-Битрикс для восстановления сайта из резервной копии. Он эффективен при переносе на идентичную версию платформы, но в межверсионной миграции возникают следующие ограничения:

  • Различия в структуре базы данных между версиями
  • Несовместимость API и функций ядра
  • Изменения в работе модулей
  • Различные системные требования

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

Подготовка к миграции

1. Анализ окружения и требований

Проверьте технические характеристики обоих серверов:

  • Версии PHP и их настройки
  • Версии MySQL/MariaDB
  • Наличие и версии необходимых модулей
  • Соответствие требованиям новой версии Битрикс

Для проверки используйте скрипт bitrix_server_test.php из дистрибутива 1С-Битрикс.

2. Создание резервных копий

Обязательные этапы:

  1. Создайте полную резервную копию исходного сайта (файлы + БД)
  2. Создайте резервную копию нового сайта, даже если он пустой
  3. Храните копии в надежном месте на протяжении всего процесса миграции

3. Документирование особенностей исходного сайта

Зафиксируйте все кастомные изменения:

  • Нестандартные шаблоны и компоненты
  • Модификации ядра (если имеются)
  • Специфические настройки в .htaccess или nginx.conf
  • Интеграции со сторонними системами

Пошаговое руководство по переносу контента

Шаг 1. Перенос базы данных

Из-за различий в версиях мы не можем просто восстановить полную резервную копию.

Экспорт данных со старого сайта

Используйте mysqldump для создания выборочного экспорта:

mysqldump -u [старый_пользователь] -p [старая_база] \
--ignore-table=[старая_база].b_option \
--ignore-table=[старая_база].b_module \
--ignore-table=[старая_база].b_event \
--ignore-table=[старая_база].b_agent \
--skip-triggers \
--no-create-info \
--complete-insert \
--skip-add-locks \
--extended-insert=FALSE \
--where="1 LIMIT 100000" data_dump.sql

Пояснение ключевых параметров:

  • --ignore-table — исключает системные таблицы, зависящие от версии
  • --no-create-info — не экспортирует структуру таблиц
  • --complete-insert — использует полный синтаксис INSERT
  • --extended-insert=FALSE — отключает группировку INSERT для упрощения отладки

Импорт данных на новый сайт

Перед импортом убедитесь, что на новом сайте установлена чистая лицензионная версия Битрикс.

mysql -u [новый_пользователь] -p [новая_база] < data_dump.sql

Важно: При большом размере базы данных разбейте импорт на этапы или используйте утилиты типа pv для отслеживания прогресса.

Шаг 2. Перенос файлов

Копирование папки upload

Используйте rsync для эффективного копирования:

rsync -avh --progress --rsh='ssh -p22' \
user@old_server:/path/to/source/upload/ \
/path/to/target/upload/

Параметры rsync:

  • -a — архивный режим (сохраняет права, владельца, временные метки)
  • -v — подробный вывод
  • -h — человеко-читаемые форматы размеров
  • --progress — отображение прогресса копирования

Проверка целостности файлов

После копирования выполните проверку:

# На старом сервере
find /path/to/source/upload/ -type f -exec md5sum {} \; | sort > old_checksums.txt

# На новом сервере  
find /path/to/target/upload/ -type f -exec md5sum {} \; | sort > new_checksums.txt

# Сравнение
diff old_checksums.txt new_checksums.txt

Шаг 3. Настройка конфигурации

Обновление настроек подключения к БД

Отредактируйте файл /bitrix/.settings.php:

<?php
return array(
  'connections' => array(
    'value' => array(
      'default' => array(
        'className' => '\\Bitrix\\Main\\DB\\MysqliConnection',
        'host' => 'localhost',
        'database' => 'новая_база',
        'login' => 'новый_пользователь',
        'password' => 'новый_пароль',
        'options' => 2,
      ),
    ),
    'readonly' => true,
  ),
  // ... остальные настройки
);

Настройка прав доступа

# Для файлов
find /path/to/target/ -type f -exec chmod 0644 {} \;

# Для папок
find /path/to/target/ -type d -exec chmod 0755 {} \;

# Для папок с правом записи
chmod 0755 /path/to/target/upload/
chmod 0755 /path/to/target/bitrix/cache/
chmod 0755 /path/to/target/bitrix/managed_cache/
chmod 0755 /path/to/target/bitrix/stack_cache/

Шаг 4. Послепереносная настройка

Очистка кэша

rm -rf /path/to/target/bitrix/cache/*
rm -rf /path/to/target/bitrix/managed_cache/*
rm -rf /path/to/target/bitrix/stack_cache/*
rm -rf /path/to/target/bitrix/html_pages/*

Обновление путей в базе данных

Если доменное имя изменилось:

UPDATE b_option SET value = REPLACE(value, 'http://старый-сайт.ru', 'http://новый-сайт.ru') WHERE value LIKE '%http://старый-сайт.ru%';

UPDATE b_file SET DESCRIPTION = REPLACE(DESCRIPTION, 'http://старый-сайт.ru', 'http://новый-сайт.ru') WHERE DESCRIPTION LIKE '%http://старый-сайт.ru%';

UPDATE b_iblock_element SET DETAIL_TEXT = REPLACE(DETAIL_TEXT, 'http://старый-сайт.ru', 'http://новый-сайт.ru') WHERE DETAIL_TEXT LIKE '%http://старый-сайт.ru%';

Проверка и обновление модулей

В административной панели:

  1. Перейдите в "Marketplace" → "Установленные решения"
  2. Проверьте доступные обновления для всех модулей
  3. Установите обновления последовательно

Решение распространенных проблем

Проблема 1: Не отображаются изображения

Причина: Неправильные пути к файлам в БД или проблемы с правами доступа.

Решение:

SELECT * FROM b_file WHERE SUBSTR(FILE_PATH, 1, 1) = '/' LIMIT 10;
UPDATE b_file SET FILE_PATH = REPLACE(FILE_PATH, '/old/path/', '/new/path/');

Проблема 2: Ошибки совместимости версий

Причина: Различия в структуре БД или API между версиями.

Решение: Постепенно обновляйте данные, начиная с наиболее важных таблиц (b_iblock, b_iblock_element, b_iblock_property).

Проблема 3: Ошибки авторизации в админке

Причина: Неперенесенные или некорректные данные в таблицах пользователей или сессий.

Решение: Очистка таблиц сессий.

TRUNCATE TABLE b_user_session;
TRUNCATE TABLE b_admin_notify;

Альтернативные методы переноса

  • Использование специализированных модулей — некоторые сторонние решения предлагают функционал для миграции, но требуют проверки совместимости
  • Поэтапное обновление на промежуточном сервере — приведите сайт к версии, максимально близкой к целевой, затем выполните стандартный перенос
  • Ручной перенос критически важных данных — через CSV-экспорт или прямое копирование через админ-панель

Заключение и лучшие практики

Перенос сайта между разными версиями 1С-Битрикс — сложная, но выполнимая задача. Ключевые принципы успешной миграции:

  1. Всегда создавайте резервные копии перед изменениями
  2. Документируйте все выполняемые действия
  3. Тестируйте на тестовом сервере перед работой на боевом
  4. Будьте готовы к ручной доработке и отладке

Использование легальной версии 1С-Битрикс обеспечивает не только беспроблемный перенос в будущем, но и гарантирует безопасность, стабильность и доступ к технической поддержке.

Хотите освоить SQL для работы с данными?

В SQLka можно изучать SQL последовательно или готовиться к собеседованиям. Запросы выполняются прямо в браузере — устанавливать базу данных не нужно.

sqlka.ru

support@sqlka.ru

Дальше по теме

1С-Битрикс

Логирование в 1С-Битрикс: полное руководство для разработчика

Полное руководство по логированию в 1С-Битрикс: какие логгеры есть, как их настроить, форматировать сообщения и подключать к своим классам. Примеры кода и советы по использованию PSR-3

sqlka.ruЧтение: 4 мин.
← Все статьи