小公司可能不需要,在稍微大点的公司,DBA和开发/运维是不同的部门,DBA团队为保证数据库绝对安全,通常会禁止WEB APP Server 对数据库进行DDL操作,他们必须要求你提供原生sql语句给他们,由他们来进行DDL操作。
开发人员如果修改了数据库表结构,那么可以通过以下语句查看migration文件对应的sql语句:
# python manage.py sqlmigrate appname + 迁移文件序号
python manage.py sqlmigrate user 0020
可能出现的问题:
可能会报AttributeError:module 'pymysql' has no attribute 'escape'错误。
解决办法:
定位到django\db\backends\mysql\schema.py文件,添加mysqldb_escape函数,并修改quote_value方法: