INTEGRITY Документация

Руководство по миграции базы данных alpha

Открытая бета-версия D1 была запущена в октябре 2023 года, и вновь создаваемые базы данных используют другую базовую архитектуру, которая значительно надёжнее и производительнее, с увеличенным размером баз данных, более высокой пропускной способностью запросов и меньшей задержкой.

Это руководство поможет вам заново создать базы данных D1 alpha в готовой к продакшену системе.

Предварительные требования

  1. У вас есть wrangler инструмент командной строки установлен
  2. Вы используете wrangler версия 3.33.0 или более поздней версии (выпущенной в марте 2024 года), так как в более ранних версиях отсутствует --remote флаг требуется в рамках этого руководства
  3. База данных D1 типа «alpha». Все базы данных, созданные до 27 июля 2023 года (примечания к выпуску) используют бэкенд хранения alpha, который больше не поддерживается и не был рекомендован для продакшена.

1. Проверьте, является ли база данных alpha

npx wrangler d1 info <database_name>

Если база данных относится к alpha-версии, вывод команды будет включать version имеет значение alpha:

...
│ version           │ alpha                                 │
...

2. Создайте ручную резервную копию

npx wrangler d1 backup create <alpha_database_name>

3. Загрузите ручную резервную копию

Приведённая ниже команда загрузит резервную копию базы данных alpha в виде .sqlite3 файле:

npx wrangler d1 backup download <alpha_database_name> <backup_id> # See available backups with wrangler d1 backup list <database_name>

4. Преобразуйте ручную резервную копию в SQL-операторы

Приведённая ниже команда преобразует резервную копию базы данных alpha из загруженного .sqlite3 файл в SQL-операторы, которые затем можно импортировать в новую базу данных:

sqlite3 db_dump.sqlite3 .dump > db.sql

После выполнения указанной выше команды вам нужно будет отредактировать полученный SQL-файл, чтобы он стал совместим с D1:

  1. Удалить BEGIN TRANSACTION и COMMIT; из файла.

  2. Удалите следующий оператор создания таблицы:

    CREATE TABLE _cf_KV (
     	key TEXT PRIMARY KEY,
     	value BLOB
    ) WITHOUT ROWID;

5. Создайте новую базу данных D1

Все новые базы данных D1 по умолчанию используют обновлённую архитектуру.

Выполните следующую команду, чтобы создать новую базу данных:

npx wrangler d1 create <new_database_name>

6. Выполните SQL-операторы к новой базе данных D1

npx wrangler d1 execute <new_database_name> --remote --file=./db.sql

7. Удалите свою базу данных alpha

Чтобы удалить предыдущую базу данных alpha, выполните:

npx wrangler d1 delete <alpha_database_name>