Tinaocenter.ru import
Таблицы.
objects
CREATE TABLE `objects` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`menu_item` int(11) NOT NULL DEFAULT '0',
`type` int(11) NOT NULL DEFAULT '0',
`name` varchar(254) DEFAULT NULL,
`note` text,
`image` varchar(254) DEFAULT NULL,
`gallery` int(11) NOT NULL DEFAULT '0',
`sort` int(11) NOT NULL DEFAULT '0',
`date` date DEFAULT NULL,
`visible` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `vti` (`visible`,`type`,`id`),
FULLTEXT KEY `ft_name` (`name`,`note`)
) ENGINE=MyISAM AUTO_INCREMENT=203 DEFAULT CHARSET=cp1251;
objects_details
CREATE TABLE `objects_details` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`node` int(11) NOT NULL DEFAULT '0',
`typeId` varchar(50) DEFAULT NULL,
`type` varchar(50) DEFAULT NULL,
`value` text,
PRIMARY KEY (`id`),
KEY `nt` (`node`,`typeId`)
) ENGINE=MyISAM AUTO_INCREMENT=1976 DEFAULT CHARSET=cp1251;
Алгоритм
- SELECT * FROM nm.objects;
- Для каждой строки из результатов
- создаем объект в БД с уникальным идентификатором (через get_guid)
- mysql.objects.name -> mongo.objects.name[0]
- mysql.objects.note -> mongo.objects.rich_description
- Загружаем картинку: Tinaocenter.ru/data/objects/mysql.objects.image
- Записываем картинку в mongo.gridfs, получаем image_id
- image_id -> mongo.objects.image[0]
- Создаем запись в mongo.binary_objects
- SELECT * from nm.objects_details where node=objects.id;
- Вносим результат (nm.objects_details.{type,value}) в mongo.objects.annotation[0]
Настройка среды для скрипта
Разворачивание дампа:
unrar e backup_2014_11_02.rar
iconv -f cp1251 -t utf8 backup_2014_11_02.sql -o backup_2014_11_02.sql_1
sudo apt-get install mysql-server mysql-client (оставить пароль рута пустым)
mysql -u root -p -h localhost
В появившемся шелле сделать:
mysql> create database nm;
mysql> exit;
mysql -u root -p -h localhost nm < backup_2014_11_02.sql_1
Установка пакетов:
sudo apt-get install python-mysqldb