Как перенести базу sqlite в mysql?

перенести базу sqlite в mysql

Небольшой такой сайт с sqlite, а ещё на SSD действительно очень шустро открывается и визуально, и по ощущениям. Но мы моделируем ситуацию, когда нужно взять и перенести. Неважно, что там были за проблемы или потребности.

В принципе самостоятельно можно найти модуль DBTNG Migrator. Магии в этом посте нет. Но для тех, кто не понимает или лень разбираться - будет пошаговое руководство.

  • Скачать, установить и включить: https://www.drupal.org/project/dbtng_migrator
  • Перейти в настройки /admin/structure/dbtng-migrator
  • Ознакомиться с пояснением под спойлером, а если ничего не понятно - читайте буквально: дописать в файл settings.php ещё одну связь с уже новой базой mysql
  • Кусок когда, что ниже в сниппете, скопировать и вставить НИЖЕ настроек подключения базы sqlite
$databases['example']['default'] = array(
      'driver' => 'mysql',
      'database' => 'databasename',
      'username' => 'username',
      'password' => 'password',
      'host' => 'localhost',
      'prefix' => '',
    );
разумеется, где:
example - рандомное название для удобства;
databasename - имя базы данных mysql;
username - имя пользователя;
password - пароль.
  • Если всё введено корректно, то в селекторе "Origin Database " появится возможность выбора между старой и новой базами данных. Иначе будет напостой маячить: You must specify more than one database connection in the settings.php file.
  • После того как всё введено, можно проверить корректность в соседней вкладке /admin/structure/dbtng-migrator/check
  • Если всё отлично, настроение изумительное, погода солнечная и бодрый чай рядом, то жмёте перенос (конвертация); это займёт считанные секунды, как если будете обновлять модули
  • Очищаете кеш и анализируете сайт на предмет возможных дефектов

Моделируем гипотетическую ситуацию, когда .ht.sqlite весит много и нужно удалить. Без проблем - смело удаляйте, но тогда не забываем отредактировать settings.php на предмет изменений.

вместо:

$databases['example']['default'] = array

должно уже быть:

$databases['default']['default'] = array

Вот и всё. Никакой магии.

Сайт перенесли и очень прекрасно работает.

Plain text

Target Image