Django走过的坑
修改现有表结构时报错:
You are trying to add a non-nullable field 'addr' to author without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Quit, and let me add a default in models.py
解决:添加字段是设置一个默认值default即可
birthday = models.DateField(default='')
addr = models.CharField(max_length=255,default='')
Running migrations: No migrations to apply.(django不能创建数据库中的表的问题)
第一步:
删除该app名字下的migrations下的__init__.py等文件。
第二步:
进入数据库,找到django_migrations的表,删除该app名字的所有记录。
第三步:执行下面这两条命令:(在项目目录下)
python manage.py makemigrations
python manage.py migrate
原因:
django_migrations表记录着数据库的对应表的修改记录。
每次修改后,都执行第三步的命令,然后在第一步的文件夹下生成修改的文件,django_migrations表记录修改的变更过程。
django.db.utils.InternalError: (1050, "Table 'django_content_type' already exists")
使用 python manage.py migrate --fake
使用上面的方法可以忽略一些错误.
另外一个解决办法就是进去到数据库中,删除所有的表.然后再使用 python manage.py makemigratios和 python manage.py migrate 即可.