Я сканирую веб-сайт со Scrapy, содержащий какой-то listings
, и сохраняю новые списки в таблице MySQL.Для каждого listing
я хочу добавить price
в отдельную таблицу (когда она меняется).
Мой текущий подход
Таблица listings
:
<id> | guid | title | body | created_at
-------------------------------------
Таблица listing_prices
:
<id> | listing_id | price | created_at
------------------------------------
Использование конвейера AddListingsToDatabase()
для сохранения новых списков и последующее использование конвейера AddPricesToDatabase()
для сохранения новых / обновленных цен в базе данных.
В AddPricesToDatabase()
я запрашиваю базу данных, чтобы получить все списки с ценами.Затем я проверяю, изменилась ли цена, и добавляю / обновляю цену.Для этого мне нужно listing.id
.
Пока что это работает только для списков, которые уже были в базе данных до текущего сканирования.
Моя проблема
Когда я хочучтобы добавить новые цены в базу данных, мне нужно listing.id
(auto_increment) из базы данных.Когда я запрашиваю базу данных в конвейере AddPricesToDatabase()
, она еще не находит списки, добавленные конвейером AddListingsToDatabase()
.
Мои вопросы
Каков наилучший подход для сохранения дополнительной информации для соскоба Item
в отдельной таблице?