Импорт базы данных Wordpress в Laravel Valet, строки не импортируются - PullRequest
0 голосов
/ 02 июля 2019

Я копирую сайт Wordpress с сервера в локальную среду Valet.

При экспорте базы данных в таблице wp_options можно увидеть строки, такие как site_url и т. Д. Присутствуют.

Тем не менее, когда я импортирую базу данных в Valet через wp-cli или phpMyAdmin, в таблице wp_options отсутствуют все обычные строкивы ожидаете найти его на сайте Wordpress.

Вместо этого есть только несколько данных для transients и т. д.

Аналогичная вещь происходит и с другими таблицами.

Я работаю:

  • macOS 10.4.3
  • phpMyAdmin 4.9.0.1
  • wp-cli 2.2.0
  • Laravel Valet2.3.3

Я экспортировал / импортировал просто таблицу wp_options , чтобы сократить время, необходимое для устранения неполадок.

Я пытался изменить настройки экспорта / импорта, такие как сжатие и , чтобы максимизировать совместимость вывода , но безрезультатно.

Мои знания базы данных после этого довольно ограничены.

Если я повторю тот же процесс, используя базу данных из другого проекта, он будет работать нормально.

Я вставлю образец wp_options данные ниже.

Беспокойство wp_options (слегка отредактировано, чтобы скрыть детали клиента):

DROP TABLE IF EXISTS `example_options`;
CREATE TABLE `example_options` (
  `option_id` bigint(20) UNSIGNED NOT NULL,
  `option_name` varchar(191) COLLATE utf8_unicode_ci DEFAULT NULL,
  `option_value` longtext COLLATE utf8_unicode_ci NOT NULL,
  `autoload` varchar(20) COLLATE utf8_unicode_ci NOT NULL DEFAULT 'yes'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `example_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
(1, 'siteurl', 'https://www.example.com', 'yes'),
(2, 'blogname', 'Example Site', 'yes'),
(3, 'blogdescription', '', 'yes'),
...

По сравнению с этим дампом из другого проектакоторый отлично работаетОбратите внимание, что версия Wordpress здесь отличается, что меняет порядок добавляемых строк.

DROP TABLE IF EXISTS `wp_options`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_options` (
  `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `option_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `option_value` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `autoload` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'yes',
  PRIMARY KEY (`option_id`),
  UNIQUE KEY `option_name` (`option_name`)
) ENGINE=InnoDB AUTO_INCREMENT=2376 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
LOCK TABLES `wp_options` WRITE;
/*!40000 ALTER TABLE `wp_options` DISABLE KEYS */;
INSERT INTO `wp_options` VALUES
(1,'siteurl','https://www.example.com','yes'),(2,'home','https://www.example.com','yes'),
(3,'blogname','Example Site','yes'),
...

После того, как я импортировал базу данных, просмотр сайта приводит к ошибке Error establishing database connection.

Если я пытаюсь использовать wp-cli, иногда я получаю Error: One or more database tables are unavailable. The database may need to be repaired., иначе это Error establishing database connection.

1 Ответ

0 голосов
/ 02 июля 2019

Коллега заметил, что это работает, если вы снимите галочку с опции Enclose export in a transaction при первоначальном экспорте базы данных.

Это пока остановит меня, поскольку влияет только на локальные проекты.

...