aerich
aerich copied to clipboard
Table rename doesn't working
trafficstars
How to reproduce
1. init models
class User(Model):
id = fields.IntField(pk=True)
class Meta:
table = 'user'
2.migrate/upgrade with this model
3. change model
class User(Model):
id = fields.IntField(pk=True)
class Meta:
table = 'users'
4. trying to migrate
Traceback (most recent call last):
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/bin/aerich", line 8, in <module>
sys.exit(main())
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/aerich/cli.py", line 321, in main
cli()
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/click/core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/click/core.py", line 782, in main
rv = self.invoke(ctx)
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/click/core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/click/core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/click/core.py", line 610, in invoke
return callback(*args, **kwargs)
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/click/decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/aerich/cli.py", line 45, in wrapper
loop.run_until_complete(f(*args, **kwargs))
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/aerich/cli.py", line 103, in migrate
ret = await Migrate.migrate(name)
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/aerich/migrate.py", line 130, in migrate
cls.diff_models(cls._last_version_content, new_version_content)
File "/Users/shvetsov/PycharmProjects/osks_bot/venv/lib/python3.9/site-packages/aerich/migrate.py", line 210, in diff_models
table = change[0][1].get("through")
AttributeError: 'str' object has no attribute 'get'
And if I make migration by myself - it also doesn't rename the table. But it says that upgrade successfull.
I had the same problem, did you handle it?