Django 做migrations时出错,解决方案

在做migrations的时候,偶尔会出现出错。


在已有数据的表中新增字段时,会弹出下面的信息

运行这个命令时

python 复制代码
python manage.py makemigrations

Tracking file by folder pattern: migrations

It is impossible to add a non-nullable field 'example' to book without specifying a default. This is because 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 manually define a default value in models.py.
    Select an option:

解决方案:

选择1

之后会弹出

Please enter the default value as valid Python.

The datetime and django.utils.timezone modules are available, so it is possible to provide e.g. timezone.now as a value.

Type 'exit' to exit this prompt

输入, 必须加双引号

python 复制代码
"1"

migrate 无法生成表

运行这个命令时

python 复制代码
python manage.py migrate

会出现这种结果

python 复制代码
Operations to perform:
  Apply all migrations: admin, app01, auth, contenttypes, sessions
Running migrations:
  No migrations to apply.

出现无法生成表的原因是,去到 django_migrations 表里查看,就能知道之前已经创建了表。所以得在该表用sql语句来删除对应的app数据。

最后运行下面两个命令

python 复制代码
python manage.py makemigrations

python manage.py migrate

这样就可以创建表了。


点个赞呗~

相关推荐
全栈前端老曹4 分钟前
【Redis】 监控与慢查询日志 —— slowlog、INFO 命令、RedisInsight 可视化监控
前端·数据库·redis·缓存·全栈·数据库监控·slowlog
木子欢儿12 分钟前
debian 13 安装配置ftp 创建用户admin可以访问 /mnt/Data/
linux·运维·服务器·数据库·debian
LSL666_18 分钟前
3 Redis 的 Java 客户端
java·数据库·redis
Moshow郑锴21 分钟前
PostgreSQL备份机制详解(WAL+Logical Dump+Physical Backup)
数据库·postgresql
linxinglu22 分钟前
Oracle:关系型数据库的锁定与数据引力场
数据库·oracle
last_zhiyin25 分钟前
Oracle sql tuning guide 翻译 Part 4-2 --- 连接方法(Join Methods)
数据库·sql
念越27 分钟前
MySQL表设计全解析:三大范式与表关系设计
数据库·mysql
倔强的石头_1 小时前
国产化时序替换落地指南:用金仓数据库管好海量时序数据
数据库
java干货1 小时前
Slave 的 SQL 线程为什么追不上 Master?
数据库·sql
紫金桥软件2 小时前
【紫金桥跨平台实时数据库】的技术架构与工程实践
数据库·架构·自动化·跨平台