tortoise / aerich

A database migrations tool for TortoiseORM, ready to production.
https://github.com/tortoise/aerich
Apache License 2.0
804 stars 90 forks source link

AttributeError: 'method_descriptor' object has no attribute '__module__'. Did you mean: '__reduce__'? #323

Closed Kokoserver closed 5 months ago

Kokoserver commented 8 months ago

After aerich init then i want to to aerich init-db then i started getting this error: Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Scripts\aerich.exe__main.py", line 7, in
File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\aerich\cli.py", line 265, in main
cli() File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\click\core.py", line 1157, in
call return self.main(*args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\click\core.py", line 1078, in main rv = self.invoke(ctx) ^^^^^^^^^^^^^^^^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\click\core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\click\core.py", line 1434, in invoke return ctx.invoke(self.callback, ctx.params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\click\core.py", line 783, in invoke return callback(*args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\click\decorators.py", line 33, in new_func return f(get_current_context(), *args, *kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\aerich\cli.py", line 31, in wrapper loop.run_until_complete(f(args, kwargs)) File "C:\Users\example\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py", line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\aerich\cli.py", line 239, in init_db await command.init_db(safe) File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\aerich__init.py", line 145, in init_db content=get_models_describe(app), ^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\aerich\utils.py", line 88, in get_models_describe describe = model.describe() ^^^^^^^^^^^^^^^^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\tortoise\models.py", line 1458, in describe "data_fields": [ ^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\tortoise\models.py", line 1459, in field.describe(serializable) File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\tortoise\fields\base.py", line 405, in describe "default": default_name(self.default) if serializable else self.default, ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\example\AppData\Local\pypoetry\Cache\virtualenvs\src-wV6ubFaj-py3.11\Lib\site-packages\tortoise\fields\base.py", line 392, in default_name return f"<function {default.module}.{default.name__}>" ^^^^^^^^^^^^^^^^^^ AttributeError: 'method_descriptor' object has no attribute 'module'. Did you mean: 'reduce'?

Please help, have been on this for a while now

Kokoserver commented 5 months ago

incase anyone is facing the same type of error, please check the default favlye you passed to your file. In my case instaed of using:

from datetime import date

i use

import datetime from datetime

then my default field was set to datetime.date, it will be good if the error code can be better.