django数据迁移命令执行成功,但未在数据库中生成表

在处理数据库字符集问题时,删除并尝试重新迁移Django应用的表,但发现执行`makemigrations`和`migrate`命令后数据库中未生成新的表。经过一系列尝试,包括删除migrations文件夹、指定应用执行迁移,最终在执行`makemigrations`和`migrate`后成功创建表,从而解决了中文数据上传的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:

因数据库默认字符集不是utf8,当上传中文字符时报错。

处理过程中删除了原数据表,重新迁移,数据库表未能创建

解决步骤:

  1. 修改数据库中相应表的字符集,上传数据失败。
  2. 修改整个数据库的字符集,上传数据失败。
  3. 修改mysql配置文件/etc/my.cnf.d/server.cnf,重启数据库,上传数据失败。

 

 

因表中无重要数据,故删除相应的表。再重新迁移。此时问题出现。

1、执行python manage.py makemigrations  :未报错,但是已经创建过一次,故没有任何改变

2、执行python manage.py migrate :未报错,但是数据库中未能重新生成表

3、重试几次无果后,以为是数据库下django_migrations表因上一次数据迁移提交已记录,且此次models表未做改变。忽略了此次提交(第15行字段被删除, 第16行是迁移成功后重新创建了表后添加)

4、重新执行python manage.py makemigrations  和  python manage.py migrate。无报错信息。但创建失败。

5、删除post应用下 migrations文件夹。执行python manage.py makemigrations。迁移文件夹migrations 未能重新创建

6、执行python manage.py makemigrations post   指定应用,post/migrations  迁移文件夹生成成功。

7、python manage.py migrate  数据库表创建成功。

8、前端重新测试提交中文数据,数据提交成功

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值