Tinaocenter.ru import

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;

Алгоритм

  1. SELECT * FROM nm.objects;
  2. Для каждой строки из результатов
    1. создаем объект в БД с уникальным идентификатором (через get_guid)
    2. mysql.objects.name -> mongo.objects.name[0]
    3. mysql.objects.note -> mongo.objects.rich_description
    4. Загружаем картинку: Tinaocenter.ru/data/objects/mysql.objects.image
    5. Записываем картинку в mongo.gridfs, получаем image_id
    6. image_id -> mongo.objects.image[0]
    7. Создаем запись в mongo.binary_objects
    8. SELECT * from nm.objects_details where node=objects.id;
    9. Вносим результат (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