- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Практически все готово к переезду сайта, вопрос только за малым. Хотелось бы сохранить кучу проиндексированных статей. Потому мучаюсь с проблемой, но пока не очень понимаю даже, как подступиться.
Из старой базы меня интересуют 3 таблицы - wp-Post, wp-term и wp-term-relationship
в новой категории хранятся немного иначе
Задача примерно такая:
1. Из таблицы wp_posts взять post_title post_content post_name и добавить категорию из wp-term для каждого поста
2. Все это перенести в таблицу вида title content slug post_category - думаю тут очевидно,какие поля будут соответсвовать
Названия категорий будут храниться в связанной таблице category
Как это можно осуществить? Может нужно импорт через CSV? может примеры запросов для создания нужных таблиц и как это сохранять в CSV через консноль?
Хотя бы сама методология/алгоритм такого переноса?
Сделать скрипт, подключится к одной базе и писать в другую базу. Тем более, если нужны действия "взять отсюда, создать тут, добавить сюда".
Сделать скрипт, подключится к одной базе и писать в другую базу. Тем более, если нужны действия "взять отсюда, создать тут, добавить сюда".
Просто гениальный совет, спасибо... А я все думаю - как???
SQL знания зачаточные совсем. Но за утро разобрался и смог собрать нужные мне данные из трех таблиц в одну, выкинув мусор. Теперь думаю как кошернее дальше.
Есть идея сконвертить данные в ХМЛ или Json и дальше обрабатывать их посредством Джанги. Как я понимаю Json - это уже готовый словарь, который бери о обрабатывай в Питоне?
SQL знания зачаточные совсем.
SELECT/UPDATE/INSERT по одной таблице - это вроде ну самый базовый уровень. Не представляю, куда уж меньше.
Есть идея сконвертить данные в ХМЛ или Json и дальше обрабатывать их посредством Джанги.
Это как гланды через задний проход удалять. Легче потратить 10-20 минут на составление (изучение) SQL запросов, чем воротить такую схему.
Честное слово, не понимаю в чем сложность из одной таблицы сделать "select a,b,c from table" а в другой раскидать по нужным полям через "insert into table (a,n,c) values(a,b,c)"
В любом случае для джанги придется делать то же самое, только в первой части придется читать json/xml, а во второй части присваивать значения объекту и сохранять его. Но при этом на вашу голову ляжет определение типов и их конвертация.
Stek, Во-первых - не по одной таблице, тут главная сложность. В Вордпрессе данные по категориям храняться в 2-х таблицах, сам пост - в третьей, а тут ещеподумал, что неплохо бы выбрать данные из postmeta - там ссылки на картинки и дополнительные данные. Я собрал их в одну таблицу например, примерно таким запросом:
Получилась одна таблица. Теперь ее надо раскидать в две, одна с с постами, во второй категории, связана через поле foreignkey в первой таблице.Не знаю пока как нужный запрос составить. Ну и если делать через апи джанги - тогда гарантированно все данные будут в правильном виде и с ними не будет проблем по редактированию в дальнейшем.
Но если сможете подсказать правильные запросы для postgres - буду благодарен
---------- Добавлено 01.05.2016 в 21:40 ----------
Но при этом на вашу голову ляжет определение типов и их конвертация.
В том и дело что нет - джанга все сама сделает. С разбором хмл и чтением из файла я разобрался, там все изумительно организовано. но , я думаю, вы и сами знаете.
В том и дело что нет - джанга все сама сделает. С разбором хмл и чтением из файла я разобрался, там все изумительно организовано. но , я думаю, вы и сами знаете.
Не знаю, никогда не приходилось. Изредка приходилось парсить XML и втыкался в кучу проблем. Но возможно не так делал.
Получилась одна таблица.
Что в общем то и не правильно. Грубо говоря:
1. берем первую запись из поста - переносим в нужном виде
2.1 берем связанные теги этого поста - переносим
2.2 берем картинки этого поста - переносим
3. по циклу возвращаемся к пункту 1.
Не надо выбирать сразу и все. Пускай будет хоть миллион запросов, для импорта это совершенно не критично.
Но если сможете подсказать правильные запросы для postgres - буду благодарен
точно такой же синтаксис как и для mysql, при учете, что таблицы уже созданы.
Можно например так:
В mysql:
В postgres
webjey, Stek, Спасибо за советы, помогло вникнуть в суть.
Но все же решил пойти по пути использования Джанго для этого. Получается универсальный код.
Вот пример, просто чтоб сравнить как все выглядит по сравнению с мусклей или пхп)))
Не фанат Джанго, поэтому никакой универсальности не увидел... Вместо того чтобы нормальным связным запросом сделать выборку, потом несколькими раскидать по таблицам с ключами и связями, вы продемонстрировали, что Джанго умеет обрабатывать json... Просто прекрасно!))
просто чтоб сравнить как все выглядит по сравнению с мусклей или пхп)))
С какого места сравнивать?🍿
i-work, А мне в таком варианте не нужно по разным таблицам раскидывать. Не нужно для импорта лезть в консоль, могу в админке теперь загрузить json и тут же его импортировать в базу без лишних телодвижений))) все связи сами создадутся
Впрочем на вкус и цвет... Я нашел такое решение, оно меня более чем устраивает.
Но тем не менее у себя в импорте вы читаете с захордкоденого пути и не создаете ни каких связей. На пхп так же можно сделать это в три строки.
По хорошему весь импорт должен делаться в транзакции, а там где у вас "exept: pass" - должен быть откат транзакции, вывод ошибки и окончания действия импорта.
Это уже не говоря о том, что категорию и автора нельзя передавать по id. Их надо извлечь из базы и при отсутствии - создать.