1. Нужен перенос всех данных rusk.ru, в том числе новостей. 2. Нужен скрипт переноса только обновлённой информации (для запуска по крону).
первый пункт сделан. Со вторым пока наблюдаются некоторые проблемы, но скоро будут исправлены.
Нашёл :) Суть в том, что timestamp в базах SQL - вещь довольно абстрактная (там используется какой-то странный тип данных, сравнивать которые сложно - rowversion (timestamp)) т.е. к чему я веду - нужно конвертировать в запросе timestamp в удобоваримый формат (http://dev.mysql.com/doc/refman/5.1/en/cast-functions.html - вот так это делается) и потом уже со спокойной душой сравнивать. Сейчас запустим на тестирование.
конвертировать будем в date, наверное. на форуме rsdn.ru нашёл очень "горячее" обсуждение на этот счёт - http://rfd.rsdn.ru/forum/message/2024825.flat.aspx :)
Решение проблемы здесь - http://www.mysql.ru/docs/man/DATETIME.html timestamp выгружается в виде YYYYMMDDHHMMSS (если это timestamp(14) - по умолчанию в MySQL он и есть) т.е. и для сравнения дату необходимо было генерировать в таком же формате. Протестировал - база наполняется. Когда добавятся новости на rusk, протестируем уже "на живом материале". Пока не fixed - ждём новостей.
После решения общей проблемы переноса нужно переделать скрипт переноса на работу с PostgreSQL.
В скрипте переноса учесть диапазоны id, которые не надо переносить (статьи других проектов) - прочитать можно в протоколе С.М.
Протокол? Ссылка или на e-mail можно?
Скрипт переделан и отлажен под перенос в pg.
Надо разобраться и доделать скрипт переноса обновлений, запустить его на cron.
Наконец-то :) В общем, есть в MySQL функция TIMESTAMP('YY-MM-DD H:M:S') так вот она и переводит строку в timestamp для дальнейшего сравнения с timestamp из таблицы в БД (кстати, формат строки может и не содержать, например, часы, минуты и секунды). Всё работает, теперь нужно rusktomir.sh запускать на cron (сейчас там стоит перенос за последний день). По состоянию на 17.11.08 16:51 все данные перенесены. Полный перенос (без учёта timestamp) запускается из rusktomir_full.sh (просто дата сравнения поставлена 0000-00-00 00:00:00, а так они ничем не различаются).
Поставили на cron rusktomir.sh, запускается через каждые 2 часа.