Как переделать таблицу комментариев

12
K
На сайте с 13.05.2008
Offline
63
1017

Надеюсь тему для вопроса выбрал правильно. Если нет, прошу перенести в "правильный" раздел.

Всем привет! Очень нужна помощь/совет... пытаюсь перенести сайт с WordPress на DLE... Посты с горем пополам перенёс с помощью RSS и программы TextKit. Но, к моему сожалению, перенеслись только тексты, без комментариев...

Попытался перенести их вручную, т.е. Взял из файла sql дамп данных таблицы `wp_comments` в таком вот формате (не знаю, как правильно назвать):

INSERT INTO `wp_comments` (`comment_ID`, `comment_post_ID`, `comment_author`, `comment_author_email`, `comment_author_url`, `comment_author_IP`, `comment_date`, `comment_date_gmt`, `comment_content`, `comment_karma`, `comment_approved`, `comment_agent`, `comment_type`, `comment_parent`, `user_id`, `comment_subscribe`) VALUES

Сделал пробные комментарии на DLE и получил дамп данных таблицы `dle_comments` такого вида:

INSERT INTO `dle_comments` (`id`, `post_id`, `user_id`, `date`, `autor`, `email`, `text`, `ip`, `is_register`, `approve`, `rating`, `vote_num`, `parent`) VALUES

Поменял вручную значения в скобках, что в `wp_comments` на значения, что в скобках `dle_comments` и получил вот такую штуку:

INSERT INTO `dle_comments` (`id`, `post_id`, `autor`, `email`, `comment_author_url`, `user_id`, `ip`, `date`, `comment_date_gmt`, `text`, `comment_karma`, `approved`, `comment_agent`, `comment_type`, `parent`, `user_id`, `comment_subscribe`) VALUES

Попробовал импортировать — не сработало...

Ответ MySQL: #1136 - Column count doesn't match value count at row 1

Погуглил и если правильно понимаю, происходит это из-за несовпадения кол-ва и порядка столбцов таблиц... возможно ещё и из-за того, что в таблице куча информации из WP, которая в DLE не используется...

Вот и вопрос: подскажите, люди добрые, что и как исправить, чтобы комментарии перенеслись? Да, версия DLE 10.6

Muhal4
На сайте с 01.07.2008
Offline
79
#1

Вся проблема в том одного соответствия столбцов мало :( вручную этого не сделать. Когда-то встречал утилиту для переноса, но там версии ДЛЕ были до 9-ки

LinkBoss.net - Трастовые ссылки для увеличения трафика в 10 раз! (http://linkboss.net/)
K
На сайте с 13.05.2008
Offline
63
#2
Muhal4:
Вся проблема в том одного соответствия столбцов мало :( вручную этого не сделать. Когда-то встречал утилиту для переноса, но там версии ДЛЕ были до 9-ки

Спасибо за ответ! И спасибо, что напомнили про версию движка, а то совсем забыл... утилит никаких не нашёл, потому и пытаюсь руками ... Очень надеялся на TextKit, но он, как я писал выше, перенес только тексты...

sovesti
На сайте с 02.03.2011
Offline
71
#3
krist:
утилит никаких не нашёл

Такой перенос просто не популярный. Обычно переходят с нуленного ДЛЕ, который шлет абузы хостеру, на бесплатный ВП.

LinkBoss.net - Трастовые ссылки для увеличения трафика в 10 раз! (http://linkboss.net/)
C
На сайте с 04.02.2005
Offline
291
#4

ну так..

INSERT INTO `dle_comments` (`id`, `post_id`, `autor`, `email`, `comment_author_url`, `user_id`, `ip`, `date`, `comment_date_gmt`, `text`, `comment_karma`, `approved`, `comment_agent`, `comment_type`, `parent`, `comment_subscribe`)

SELECT `comment_ID`, `comment_post_ID`, `comment_author`, `comment_author_email`, `comment_author_url`,

`user_id`,

`comment_author_IP`, `comment_date`, `comment_date_gmt`, `comment_content`, `comment_karma`, `comment_approved`, `comment_agent`, `comment_type`, `comment_parent`, `comment_subscribe` FROM `wp_comments`

таблицу импортнуть wp_comments` в абзу

K
На сайте с 13.05.2008
Offline
63
#5
Chukcha:
ну так..
INSERT INTO `dle_comments` (`id`, `post_id`, `autor`, `email`, `comment_author_url`, `user_id`, `ip`, `date`, `comment_date_gmt`, `text`, `comment_karma`, `approved`, `comment_agent`, `comment_type`, `parent`, `comment_subscribe`)
SELECT `comment_ID`, `comment_post_ID`, `comment_author`, `comment_author_email`, `comment_author_url`,
`user_id`,
`comment_author_IP`, `comment_date`, `comment_date_gmt`, `comment_content`, `comment_karma`, `comment_approved`, `comment_agent`, `comment_type`, `comment_parent`, `comment_subscribe` FROM `wp_comments`

таблицу импортнуть wp_comments` в абзу

Спасибо за помощь! Попробовал ваш вариант, тоже ошибка... на этот раз такая:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(22, 116, 'admin', 'aaa@aaa.ru', 'http://namesite.ru', '83.167.116.98' at line 4

C
На сайте с 04.02.2005
Offline
291
#6

У меня нет ваших таблиц

писал на коленке

На вскидку запрос верный.

откуда взялись вот эти данные мне не понятно

dma84
На сайте с 21.04.2009
Offline
168
#7

Автору не помешало бы предоставить структуру обеих таблиц, а не MySQL-запросы

Проще импортнуть таблицу из ВП, а потом поменять названия столбцов, их порядок и переименовать таблицу. Но нужно смотреть на типы столбцов, используемых в DLE.

K
На сайте с 13.05.2008
Offline
63
#8
dma84:
Автору не помешало бы предоставить структуру обеих таблиц, а не MySQL-запросы

Проще импортнуть таблицу из ВП, а потом поменять названия столбцов, их порядок и переименовать таблицу. Но нужно смотреть на типы столбцов, используемых в DLE.

Тут такое дело... в общем благодаря Вячеславу (Chukcha ) таблица комментариев загрузилась в БД, но... не заработала на сайте... Скорее всего с ней всё в порядке (я по крайней мере очень на это надеюсь), поскольку выяснилось, что TextKit при переносе постов не скопировал ID-новостей, а назначил им новые... сразу это было не видно, поскольку даты, соответственно хронология и вывод постов остались такими же, как и в оригинале...

Так что теперь нужно ту же процедуру произвести с таблицей постов...

Касательно структуры таблиц, то они вот такие:

--

-- Структура таблицы `wp_posts`

--

CREATE TABLE IF NOT EXISTS `wp_posts` (

`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,

`post_author` bigint(20) NOT NULL DEFAULT '0',

`post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

`post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

`post_content` longtext NOT NULL,

`post_title` text NOT NULL,

`post_category` int(4) NOT NULL DEFAULT '0',

`post_excerpt` text NOT NULL,

`post_status` enum('publish','draft','private','static','object','attachment','inherit','future') NOT NULL DEFAULT 'publish',

`comment_status` enum('open','closed','registered_only') NOT NULL DEFAULT 'open',

`ping_status` enum('open','closed') NOT NULL DEFAULT 'open',

`post_password` varchar(20) NOT NULL DEFAULT '',

`post_name` varchar(200) NOT NULL DEFAULT '',

`to_ping` text NOT NULL,

`pinged` text NOT NULL,

`post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

`post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

`post_content_filtered` text NOT NULL,

`post_parent` bigint(20) NOT NULL DEFAULT '0',

`guid` varchar(255) NOT NULL DEFAULT '',

`menu_order` int(11) NOT NULL DEFAULT '0',

`post_type` varchar(20) NOT NULL DEFAULT 'post',

`post_mime_type` varchar(100) NOT NULL DEFAULT '',

`comment_count` bigint(20) NOT NULL DEFAULT '0',

PRIMARY KEY (`ID`),

KEY `post_name` (`post_name`),

KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`),

FULLTEXT KEY `post_related` (`post_name`,`post_content`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1322 ;

--

-- Дамп данных таблицы `wp_posts`

--

INSERT INTO `wp_posts` (`ID`, `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`, `post_category`, `post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES

И вот во что нужно превратить:

--

-- Структура таблицы `dle_post`

--

CREATE TABLE IF NOT EXISTS `dle_post` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`autor` varchar(40) NOT NULL DEFAULT '',

`date` datetime NOT NULL DEFAULT '2000-01-01 00:00:00',

`short_story` text NOT NULL,

`full_story` text NOT NULL,

`xfields` text NOT NULL,

`title` varchar(255) NOT NULL DEFAULT '',

`descr` varchar(200) NOT NULL DEFAULT '',

`keywords` text NOT NULL,

`category` varchar(200) NOT NULL DEFAULT '0',

`alt_name` varchar(200) NOT NULL DEFAULT '',

`comm_num` smallint(5) unsigned NOT NULL DEFAULT '0',

`allow_comm` tinyint(1) NOT NULL DEFAULT '1',

`allow_main` tinyint(1) unsigned NOT NULL DEFAULT '1',

`approve` tinyint(1) NOT NULL DEFAULT '0',

`fixed` tinyint(1) NOT NULL DEFAULT '0',

`allow_br` tinyint(1) NOT NULL DEFAULT '1',

`symbol` varchar(3) NOT NULL DEFAULT '',

`tags` varchar(255) NOT NULL DEFAULT '',

`metatitle` varchar(255) NOT NULL DEFAULT '',

PRIMARY KEY (`id`),

KEY `autor` (`autor`),

KEY `alt_name` (`alt_name`),

KEY `category` (`category`),

KEY `approve` (`approve`),

KEY `allow_main` (`allow_main`),

KEY `date` (`date`),

KEY `symbol` (`symbol`),

KEY `comm_num` (`comm_num`),

KEY `tags` (`tags`),

KEY `fixed` (`fixed`),

FULLTEXT KEY `short_story` (`short_story`,`full_story`,`xfields`,`title`)

) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3949 ;

--

-- Дамп данных таблицы `dle_post`

--

INSERT INTO `dle_post` (`id`, `autor`, `date`, `short_story`, `full_story`, `xfields`, `title`, `descr`, `keywords`, `category`, `alt_name`, `comm_num`, `allow_comm`, `allow_main`, `approve`, `fixed`, `allow_br`, `symbol`, `tags`, `metatitle`) VALUES

Brand from Amber
На сайте с 18.08.2007
Offline
293
#9
krist:
теперь нужно ту же процедуру произвести с таблицей постов...

Ну и сделай по аналогии, в чём проблема-то:

INSERT INTO `dle_post` (`id`, `autor`, `date`, ..... и т. д.)
SELECT `ID`, `post_author`, `post_date`, ..... и т. д. FROM `wp_posts`

Почитай какое поле за что отвечает (или создай 2-а одинаковых поста на разных движках и сравни) и вперёд.

Лучший способ понять что-то самому - объяснить это другому.
K
На сайте с 13.05.2008
Offline
63
#10
Brand from Amber:
Ну и сделай по аналогии, в чём проблема-то:

Почитай какое поле за что отвечает (или создай 2-а одинаковых поста на разных движках и сравни) и вперёд.

Пробовал - не получилось... не знаю, как правильно называется, но какие-то связи теряются между таблицами... не появляются комментарии в постах, хотя в БД они есть...

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий