Я хотел вытащить базу данных с моего рабочего веб-сайта WordPress в автономную копию для разработки на моем настольном компьютере, чтобы я мог изменить сайт и протестировать его с помощью
полный набор существующего контента и истории блога.
Это оказалось проблематичным, поскольку простое создание автономной резервной копии базы данных и ее импорт в локальную базу данных разработки не работали.
Преодоление этих проблем при перемещении данных из рабочей базы данных в базу данных dev, вероятно, может быть использовано и в другом направлении - поэтому я думаю, что вы можете просто использовать эти рекомендации для того, что вы хотите сделать, - просто начните с dev данные и переместить его в продукт.
Проблемы здесь были:
- обозначение постоянной ссылки для
все сообщения в блоге хранятся в
базы данных, как они будут для
онлайн версия, но моя оффлайн копия
не по адресу домена, а
это находится в каталоге localhost. Так
когда я запускаю сайт локально,
хотя форматирование CSS и
изображения все на месте (изображение
ссылки относительны), фактические
сообщения в блоге не отображаются.
- многие ссылки по всему
ссылка на сайт обратно в интернет,
так что если вы попытаетесь перейти к
архивы или комментарии, или
категории, или основные посты, вы
получить обратно в Интернет
вместо того, чтобы оставаться в базе данных
на локальной машине.
Чтобы убедиться, что я все делал правильно, я сдул установку WordPress, установленную на моем локальном компьютере, и перезапустил ее с нуля.
После того, как у меня была чистая новая установка WordPress и новая только что созданная по умолчанию локальная база данных для нее, я открыл базу данных в phpMyAdmin и взглянул на wp_posts
таблица. Внутри каждой записи (другими словами, каждого сообщения) есть столбец с названием «guid», в котором указано местоположение этого сообщения. Например, первый в свежем, по умолчанию
install содержит это значение "guid":
http://localhost/wordpress/?p=1
Если вы посмотрите в таблице wp_posts вашей онлайн-версии, вместо этого вы увидите в этом месте URL-адрес вашего сайта в Интернете.
Вы не можете просто импортировать таблицы оптом в вашу локальную установку, потому что вы будете импортировать все эти внешние ссылки. Это сделает вашу локальную версию невозможной для локальной навигации.
Итак, я создал резервную копию базы данных моего онлайн-сайта и сохранил ее локально в виде файла .sql. Затем я открыл этот файл в текстовом редакторе (я использовал notepad ++, отличную бесплатную программу, но вы могли использовать любой текстовый редактор). Вещи, которые мне нужно было посмотреть:
- По какой-то причине таблицы на моем
Интернет-сайт не просто, например,
"wp_posts" - они
"wp_something_posts" ... есть
некоторые дополнительные буквы там в
имена таблиц.
- Любые ссылки на http: // ..., которые содержат мой онлайн-URL вместо localhost / wordpress
Для простоты давайте делать только сообщения. В резервной копии .sql, которую вы сделали из своей онлайновой базы данных, найдите начало таблицы wp_posts. Это будет выглядеть примерно так:
--
-- Table structure for table `wp_posts`
--
DROP TABLE IF EXISTS `wp_posts`;
CREATE TABLE `wp_posts` (
... и так далее. Выделите все, что выше этого, чуть ниже комментария, отмечающего начало базы данных в верхней части файла (он скажет - База данных: «имя вашей базы данных»), и удалите его. Затем перейдите в конец таблицы wp_posts и удалите все, после чего завершите ее до конца файла. Теперь ваш файл содержит только ваши сообщения, и ничего больше.
Сохраните это как отдельный документ. Назовите это posts.sql или что-то в этом роде.
Теперь в этом файле posts.sql вам нужно выполнить два действия по поиску / замене.
- Найти каждый экземпляр имени
таблица wp_something_posts и
замените его на wp_posts. Только ты
нужно сделать это, если ваша резервная копия
вашей онлайн-базы данных не
соответствует вашей чистой локальной установке как
насколько имена таблиц идут. Ты хочешь
какое бы имя таблицы ни было в этом
файл, соответствующий вашему локальномуустановленная база данных WordPress имеет как
это имя таблицы. Если вы не делаете
эти имена совпадают, вы просто
собирается в конечном итоге импортировать сообщения
в новую таблицу с другим именем,
который будет бесполезен для вас в
все.
- Найти каждый экземпляр http: // ...
(замените elipsis своим URL)
и заменить его на
http://localhost/wordpress (или
независимо от локального URL вашего разработчика
версия сайта есть)
Теперь сохраните этот файл снова, чтобы убедиться, что эти изменения установлены.
Теперь, когда вы сделали это, используйте phpMyAdmin, чтобы войти в базу данных wordpress на вашем локальном компьютере, выберите вкладку «импорт» и перейдите к селектору к файлу posts.sql , который вы только что создали, а затем импортировать его. Это вытянет все данные в этом файле в вашу локальную таблицу wp_posts.
Когда это закончится, просмотрите ваш местный сайт WordPress. Вы увидите все свои сообщения там сейчас. Ура!
Возможно, вам придется сделать что-то похожее для нескольких других таблиц, если вы хотите добавить свои комментарии, теги, категории и статические страницы, которые вы создали, и т. Д.
Я понимаю, что это запутанный процесс. Вероятно, где-то есть инструмент, который облегчает эту деятельность, и если кто-то знает о ней, я бы хотел узнать об этом. Если кто-то знает лучший способ сделать это вручную, чем то, что я описал, я бы тоже хотел это знать!
До тех пор я так и понял, как это сделать. Надеюсь, это поможет вам двигаться в правильном направлении.