* increase: 1. Inspectdb adds DECIMAL, DOUBLE, CHAR, TIME data type matching; 2. Add exception handling, avoid the need to manually create the entire table because a certain data type is not supported. * fix: aerich inspectdb raise KeyError for double in MySQL * feat: support command `python -m aerich` * docs: update changelog * tests: verify mysql inspectdb for float field * fix mysql uuid field inspect to be charfield * refactor: use `db_index=True` instead of `index=True` for inspectdb * docs: update changelog --------- Co-authored-by: xiechen <xiechen@jinse.com> Co-authored-by: Waket Zheng <waketzheng@gmail.com>
18 lines
591 B
Python
18 lines
591 B
Python
from tests._utils import Dialect, run_shell
|
|
|
|
|
|
def test_inspect(new_aerich_project):
|
|
if Dialect.is_sqlite():
|
|
# TODO: test sqlite after #384 fixed
|
|
return
|
|
run_shell("aerich init -t settings.TORTOISE_ORM")
|
|
run_shell("aerich init-db")
|
|
ret = run_shell("aerich inspectdb -t product")
|
|
assert ret.startswith("from tortoise import Model, fields")
|
|
assert "primary_key=True" in ret
|
|
assert "fields.DatetimeField" in ret
|
|
assert "fields.FloatField" in ret
|
|
assert "fields.UUIDField" in ret
|
|
if Dialect.is_mysql():
|
|
assert "db_index=True" in ret
|