async def update_db(): last_retweet_from_db = await get_last_retweet_from_db() retweets_from_twitter = api.retweets(TWEET_ID, count=100) if not last_retweet_from_db: new_retweets = [ r for r in retweets_from_twitter if r.created_at > datetime(2019, 8, 31, 0, 0) ] else: new_retweets = [ r for r in retweets_from_twitter if r.created_at > last_retweet_from_db.created_at ] my_logger.debug(f"{len(new_retweets)} retweets to insert in db") async with create_engine( user="******", database="deviant", host="127.0.0.1", password="******", port=5432, ) as engine: mgr = SQLModelManager.instance() mgr.database = engine for retweet in new_retweets: user, created = await User.objects.get_or_create(id=int(retweet.user.id)) if created: my_logger.debug(f"New User created {retweet.user.screen_name}") user.name = retweet.user.name user.screen_name = retweet.user.screen_name user.followers_count = retweet.user.followers_count user.statuses_count = retweet.user.statuses_count await user.save() new_record = Tweet() new_record.id = retweet.id new_record.text = retweet.text new_record.created_at = retweet.created_at new_record.user = user new_record.retweet = True my_logger.debug(f"New retweet created {retweet.text}") await new_record.save(force_insert=True)