- Published on
django根据本地数据库建立model及踩坑
- Authors
- Name
- Lif
这次要根据数据库建立一个model.py,奈何数据库表比较多,就想从本地数据库迁移直接得到model,还是有方法的.
inspectdb
inspectdb可以对 NAME 配置指向的数据库中的数据库表进行检查,并将一个 Django 模型模块(models.py 文件)输出到标准输出。 语法为:
python manage.py inspectdb > models.py
or
python manage.py inspectdb > yourapp/models.py
执行后,在model.py中就有了数据库里面的表,也可以单表建立model. 然后执行
python manage.py makemigrations
python manage.py migrate
即可完成迁移.
报错
然后完成后,再次启动服务器,却报错了,提示
OSError: [WinError 123] 文件名、目录名或卷标语法不正确。: '<frozen importlib._bootstrap>'
查了一下,找不到问题所在,把app卸载掉就可以重新运行. 经过反复尝试,发现是inspectdb的问题,这个命令会保存一份utf-16的model.py,而我们需要的是utf-8格式的! 然后用记事本另存为的方式把model.py变成utf-8格式,再次run server 成功启动