meilisync icon indicating copy to clipboard operation
meilisync copied to clipboard

TypeError: 'async for' requires an object with __aiter__ method, got list

Open TSXXY opened this issue 1 year ago • 7 comments

meilisync-1 | │ /meilisync/meilisync/meili.py:33 in add_full_data │ meilisync-1 | │ │ meilisync-1 | │ 30 │ async def add_full_data(self, sync: Sync, data: AsyncGenerator): │ meilisync-1 | │ 31 │ │ tasks = [] │ meilisync-1 | │ 32 │ │ count = 0 │ meilisync-1 | │ ❱ 33 │ │ async for items in data: │ meilisync-1 | │ 34 │ │ │ count += len(items) │ meilisync-1 | │ 35 │ │ │ events = [Event(type=EventType.create, data=item) for item │ meilisync-1 | │ 36 │ │ │ task = await self.handle_events_by_type(sync, events, Even │ meilisync-1 | │ │ meilisync-1 | │ ╭───────────────────────────────── locals ─────────────────────────────────╮ │ meilisync-1 | │ │ count = 0 │ │ meilisync-1 | │ │ data = [ │ │ meilisync-1 | │ │ │ { │ │ meilisync-1 | │ │ │ │ 'anime_id': 1, │ │ meilisync-1 | │ │ │ │ 'name': '王者天下 第五季', │ │ meilisync-1 | │ │ │ │ 'play_count': 0, │ │ meilisync-1 | │ │ │ │ 'danmaku_count': 0, │ │ meilisync-1 | │ │ │ │ 'like_count': 0, │ │ meilisync-1 | │ │ │ │ 'create_by': 'admin', │ │ meilisync-1 | │ │ │ │ 'update_by': None, │ │ meilisync-1 | │ │ │ │ 'create_time': datetime.datetime(2024, 4, 1, 18, 22, │ │ meilisync-1 | │ │ 15), │ │ meilisync-1 | │ │ │ │ 'update_time': None, │ │ meilisync-1 | │ │ │ │ 'is_deleted': 0, │ │ meilisync-1 | │ │ │ │ ... +7 │ │ meilisync-1 | │ │ │ }, │ │ meilisync-1 | │ │ │ { │ │ meilisync-1 | │ │ │ │ 'anime_id': 2, │ │ meilisync-1 | │ │ │ │ 'name': '少女与战车 最终章', │ │ meilisync-1 | │ │ │ │ 'play_count': 0, │ │ meilisync-1 | │ │ │ │ 'danmaku_count': 0, │ │ meilisync-1 | │ │ │ │ 'like_count': 0, │ │ meilisync-1 | │ │ │ │ 'create_by': 'admin', │ │ meilisync-1 | │ │ │ │ 'update_by': None, │ │ meilisync-1 | │ │ │ │ 'create_time': datetime.datetime(2024, 4, 1, 18, 22, │ │ meilisync-1 | │ │ 15), │ │ meilisync-1 | │ │ │ │ 'update_time': None, │ │ meilisync-1 | │ │ │ │ 'is_deleted': 0, │ │ meilisync-1 | │ │ │ │ ... +7 │ │ meilisync-1 | │ │ │ }, │ │ meilisync-1 | │ │ │ { │ │ meilisync-1 | │ │ │ │ 'anime_id': 3, │ │ meilisync-1 | │ │ │ │ 'name': │ │ meilisync-1 | │ │ '被称为废物的原英雄,被家里流放后随心所欲地活下去', │ │ meilisync-1 | │ │ │ │ 'play_count': 0, │ │ meilisync-1 | │ │ │ │ 'danmaku_count': 0, │ │ meilisync-1 | │ │ │ │ 'like_count': 0, │ │ meilisync-1 | │ │ │ │ 'create_by': 'admin', │ │ meilisync-1 | │ │ │ │ 'update_by': None, │ │ meilisync-1 | │ │ │ │ 'create_time': datetime.datetime(2024, 4, 1, 18, 22, │ │ meilisync-1 | │ │ 16), │ │ meilisync-1 | │ │ │ │ 'update_time': None, │ │ meilisync-1 | │ │ │ │ 'is_deleted': 0, │ │ meilisync-1 | │ │ │ │ ... +7 │ │ meilisync-1 | │ │ │ }, │ │ meilisync-1 | │ │ │ { │ │ meilisync-1 | │ │ │ │ 'anime_id': 4, │ │ meilisync-1 | │ │ │ │ 'name': '单间、光照尚好、附带天使。', │ │ meilisync-1 | │ │ │ │ 'play_count': 0, │ │ meilisync-1 | │ │ │ │ 'danmaku_count': 0, │ │ meilisync-1 | │ │ │ │ 'like_count': 0, │ │ meilisync-1 | │ │ │ │ 'create_by': 'admin', │ │ meilisync-1 | │ │ │ │ 'update_by': None, │ │ meilisync-1 | │ │ │ │ 'create_time': datetime.datetime(2024, 4, 1, 18, 22, │ │ meilisync-1 | │ │ 16), │ │ meilisync-1 | │ │ │ │ 'update_time': None, │ │ meilisync-1 | │ │ │ │ 'is_deleted': 0, │ │ meilisync-1 | │ │ │ │ ... +7 │ │ meilisync-1 | │ │ │ }, │ │ meilisync-1 | │ │ │ { │ │ meilisync-1 | │ │ │ │ 'anime_id': 5, │ │ meilisync-1 | │ │ │ │ 'name': '关于我转生变成史莱姆这档事 第三季', │ │ meilisync-1 | │ │ │ │ 'play_count': 0, │ │ meilisync-1 | │ │ │ │ 'danmaku_count': 0, │ │ meilisync-1 | │ │ │ │ 'like_count': 0, │ │ meilisync-1 | │ │ │ │ 'create_by': 'admin', │ │ meilisync-1 | │ │ │ │ 'update_by': None, │ │ meilisync-1 | │ │ │ │ 'create_time': datetime.datetime(2024, 4, 1, 18, 22, │ │ meilisync-1 | │ │ 16), │ │ meilisync-1 | │ │ │ │ 'update_time': None, │ │ meilisync-1 | │ │ │ │ 'is_deleted': 0, │ │ meilisync-1 | │ │ │ │ ... +7 │ │ meilisync-1 | │ │ │ }, │ │ meilisync-1 | │ │ │ { │ │ meilisync-1 | │ │ │ │ 'anime_id': 6, │ │ meilisync-1 | │ │ │ │ 'name': 'Wonderful 光之美少女!', │ │ meilisync-1 | │ │ │ │ 'play_count': 0, │ │ meilisync-1 | │ │ │ │ 'danmaku_count': 0, │ │ meilisync-1 | │ │ │ │ 'like_count': 0, │ │ meilisync-1 | │ │ │ │ 'create_by': 'admin', │ │ meilisync-1 | │ │ │ │ 'update_by': None, │ │ meilisync-1 | │ │ │ │ 'create_time': datetime.datetime(2024, 4, 1, 18, 22, │ │ meilisync-1 | │ │ 16), │ │ meilisync-1 | │ │ │ │ 'update_time': None, │ │ meilisync-1 | │ │ │ │ 'is_deleted': 0, │ │ meilisync-1 | │ │ │ │ ... +7 │ │ meilisync-1 | │ │ │ }, │ │ meilisync-1 | │ │ │ { │ │ meilisync-1 | │ │ │ │ 'anime_id': 7, │ │ meilisync-1 | │ │ │ │ 'name': '我心里危险的东西 第二季', │ │ meilisync-1 | │ │ │ │ 'play_count': 0, │ │ meilisync-1 | │ │ │ │ 'danmaku_count': 0, │ │ meilisync-1 | │ │ │ │ 'like_count': 0, │ │ meilisync-1 | │ │ │ │ 'create_by': 'admin', │ │ meilisync-1 | │ │ │ │ 'update_by': None, │ │ meilisync-1 | │ │ │ │ 'create_time': datetime.datetime(2024, 4, 1, 18, 22, │ │ meilisync-1 | │ │ 17), │ │ meilisync-1 | │ │ │ │ 'update_time': None, │ │ meilisync-1 | │ │ │ │ 'is_deleted': 0, │ │ meilisync-1 | │ │ │ │ ... +7 │ │ meilisync-1 | │ │ │ }, │ │ meilisync-1 | │ │ │ { │ │ meilisync-1 | │ │ │ │ 'anime_id': 9, │ │ meilisync-1 | │ │ │ │ 'name': '假面骑士歌查德', │ │ meilisync-1 | │ │ │ │ 'play_count': 0, │ │ meilisync-1 | │ │ │ │ 'danmaku_count': 0, │ │ meilisync-1 | │ │ │ │ 'like_count': 0, │ │ meilisync-1 | │ │ │ │ 'create_by': 'admin', │ │ meilisync-1 | │ │ │ │ 'update_by': None, │ │ meilisync-1 | │ │ │ │ 'create_time': datetime.datetime(2024, 4, 1, 18, 22, │ │ meilisync-1 | │ │ 17), │ │ meilisync-1 | │ │ │ │ 'update_time': None, │ │ meilisync-1 | │ │ │ │ 'is_deleted': 0, │ │ meilisync-1 | │ │ │ │ ... +7 │ │ meilisync-1 | │ │ │ }, │ │ meilisync-1 | │ │ │ { │ │ meilisync-1 | │ │ │ │ 'anime_id': 10, │ │ meilisync-1 | │ │ │ │ 'name': '宝可梦 地平线 莉可与罗伊踏上旅途', │ │ meilisync-1 | │ │ │ │ 'play_count': 0, │ │ meilisync-1 | │ │ │ │ 'danmaku_count': 0, │ │ meilisync-1 | │ │ │ │ 'like_count': 0, │ │ meilisync-1 | │ │ │ │ 'create_by': 'admin', │ │ meilisync-1 | │ │ │ │ 'update_by': None, │ │ meilisync-1 | │ │ │ │ 'create_time': datetime.datetime(2024, 4, 1, 18, 22, │ │ meilisync-1 | │ │ 17), │ │ meilisync-1 | │ │ │ │ 'update_time': None, │ │ meilisync-1 | │ │ │ │ 'is_deleted': 0, │ │ meilisync-1 | │ │ │ │ ... +7 │ │ meilisync-1 | │ │ │ }, │ │ meilisync-1 | │ │ │ { │ │ meilisync-1 | │ │ │ │ 'anime_id': 11, │ │ meilisync-1 | │ │ │ │ 'name': '香格里拉·弗陇提亚~屎作猎人向神作发起挑战~', │ │ meilisync-1 | │ │ │ │ 'play_count': 0, │ │ meilisync-1 | │ │ │ │ 'danmaku_count': 0, │ │ meilisync-1 | │ │ │ │ 'like_count': 0, │ │ meilisync-1 | │ │ │ │ 'create_by': 'admin', │ │ meilisync-1 | │ │ │ │ 'update_by': None, │ │ meilisync-1 | │ │ │ │ 'create_time': datetime.datetime(2024, 4, 1, 18, 22, │ │ meilisync-1 | │ │ 17), │ │ meilisync-1 | │ │ │ │ 'update_time': None, │ │ meilisync-1 | │ │ │ │ 'is_deleted': 0, │ │ meilisync-1 | │ │ │ │ ... +7 │ │ meilisync-1 | │ │ │ } │ │ meilisync-1 | │ │ ] │ │ meilisync-1 | │ │ self = <meilisync.meili.Meili object at 0x7f9f00d63e60> │ │ meilisync-1 | │ │ sync = Sync( │ │ meilisync-1 | │ │ │ plugins=['meilisync.plugin.Plugin'], │ │ meilisync-1 | │ │ │ table='dmkh_animes', │ │ meilisync-1 | │ │ │ pk='anime_id', │ │ meilisync-1 | │ │ │ full=True, │ │ meilisync-1 | │ │ │ index='animes', │ │ meilisync-1 | │ │ │ fields=None │ │ meilisync-1 | │ │ ) │ │ meilisync-1 | │ │ tasks = [] │ │ meilisync-1 | │ ╰──────────────────────────────────────────────────────────────────────────╯ │ meilisync-1 | ╰──────────────────────────────────────────────────────────────────────────────╯ meilisync-1 | TypeError: 'async for' requires an object with aiter method, got list meilisync-1 exited with code 1

TSXXY avatar Apr 03 '24 14:04 TSXXY

这个是什么问题,数据从数据库读到了。但是还是报错。

TSXXY avatar Apr 03 '24 16:04 TSXXY

image 当把progress的type改成redis后会变成这样

TSXXY avatar Apr 03 '24 16:04 TSXXY

MySQL还是Postgres

long2ice avatar Apr 05 '24 13:04 long2ice

MySQL 还是 Postgres

是使用了阿里云的PolarDB MySQL8.0

TSXXY avatar Apr 06 '24 02:04 TSXXY

any progess, I meet same problem

chenzhony avatar May 23 '24 09:05 chenzhony

i also meet the same problem. I'm using MySQL Database , i switch to the image docker tag to develop. the index on meilisearch has been adding but table has been set on 'NONE' and empty documents in it

image

this is my configuration for config.yml

`debug: true plugins:

  • meilisync.plugin.Plugin progress: type: file path: ./progress source: type: mysql host: host.docker.internal port: 3306
    user: mysql # username sql password: mysql database: my_db meilisearch: api_url: http://host.docker.internal:7700 # meilisearch api url api_key: insert_size: 1000 insert_interval: 10 sync:
  • table: MOCK_DATA index: data full: true fields: id: pk first_name: last_name: email: gender: ip_address: sentry: dsn: "" environment: "production" ` i would mess up something, please correct me if I'm wrong.

Thanakun avatar Jun 11 '24 13:06 Thanakun

Having same problem for long2ice/meilisync, I fix it by using long2ice/meilisync:dev. So, you may use newer version of it.

Detail list: https://hub.docker.com/r/long2ice/meilisync/tags

gantrol avatar Aug 06 '24 00:08 gantrol