在写django程序时,新添加了一个子应用,运行后在后端向数据看中添加一个数据,报错。
OperationalError at /admin/pay/payinfo/add/ no such table: pay_payinfo 注意:看这里,说没有这个表 Request Method: POST Request URL: http://127.0.0.1:8000/admin/pay/payinfo/add/ Django Version: 3.2.8 Exception Type: OperationalError Exception Value: no such table: pay_payinfo Exception Location: /home/hello/.virtualenv/helloDjango/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py, line 423, in execute Python Executable: /home/hello/.virtualenv/helloDjango/bin/python3 Python Version: 3.9.6 Python Path: ['/home/hello/work/django_test/bookTest', '/usr/lib/python39.zip', '/usr/lib/python3.9', '/usr/lib/python3.9/lib-dynload', '/home/hello/.virtualenv/helloDjango/lib/python3.9/site-packages']
仔细观察,它说“no such table: pay_payinfo”,也就是没有pay_payinfo这个表。
原因是:我们新添加了一个pay应用,内部也是用数据看,但是并没有对数据库进行新的迁移。因为django是用ORM中间层来管理和操作数据库,需要迁移。
解决方案:重新迁移一次数据文件即可
python3 manage.py makemigrations python3 manage.py migrate python3 manage.py runserver 重新运行即可。



