Django models.py 表结构数据更新后应用到数据库中

Django models.py 表结构数据更新后应用到数据库中

如下,数据表新增字段:

# arch_center/models.py

class BaseArch(AbstractBaseModel):
  	...
    x86_tag = models.CharField("x86 架构版本", max_length=100, null=False, default='')
    x86_sha256 = models.CharField("x86 架构sha256值", max_length=100, null=False, default='')
    aarch64_tag = models.CharField("aarch64 架构版本", max_length=100, null=False, default='')
    aarch64_sha256 = models.CharField("aarch64 架构sha256值", max_length=100, null=False, default='')
    sw64_tag = models.CharField("sw64 架构版本", max_length=100, null=False, default='')
    sw64_sha256 = models.CharField("sw64 架构sha256值", max_length=100, null=False, default='')

    class Meta:
        db_table = "base_arch"
        verbose_name_plural = "基础镜像表"

未应用之前数据库表结构:

mysql> desc base_arch;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| id                 | int(11)      | NO   | PRI | NULL    | auto_increment |
| user               | varchar(100) | YES  |     | NULL    |                |
| is_newest          | varchar(100) | NO   |     | NULL    |                |
| is_delete          | varchar(20)  | NO   |     | NULL    |                |
| is_free            | varchar(20)  | NO   |     | NULL    |                |
+--------------------+--------------+------+-----+---------+----------------+
30 rows in set (0.00 sec)

新增操作:

python manage.py makemigrations arch_center

Migrations for 'arch_center':
  0079_auto_20220422_1046.py:
    - Add field aarch64_sha256 to basearch
    - Add field aarch64_tag to basearch
    - Add field sw64_sha256 to basearch
    - Add field sw64_tag to basearch
    - Add field x86_sha256 to basearch
    - Add field x86_tag to basearch

python manage.py migrate

Operations to perform:
  Synchronize unmigrated apps: staticfiles, messages
  Apply all migrations: basearch
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying basearch.0079_auto_20220422_1046... OK    

再次查询数据库,成功

mysql> desc basearch;
+-----------------------+--------------+------+-----+---------+----------------+
| Field                 | Type         | Null | Key | Default | Extra          |
+-----------------------+--------------+------+-----+---------+----------------+
| id                    | int(11)      | NO   | PRI | NULL    | auto_increment |
| user                  | varchar(100) | YES  |     | NULL    |                |
| is_newest             | varchar(100) | NO   |     | NULL    |                |
| is_delete             | varchar(20)  | NO   |     | NULL    |                |
| is_free               | varchar(20)  | NO   |     | NULL    |                |
| aarch64_sha256        | varchar(100) | NO   |     | NULL    |                |
| aarch64_tag           | varchar(100) | NO   |     | NULL    |                |
| sw64_sha256           | varchar(100) | NO   |     | NULL    |                |
| sw64_tag              | varchar(100) | NO   |     | NULL    |                |
| x86_sha256            | varchar(100) | NO   |     | NULL    |                |
| x86_tag               | varchar(100) | NO   |     | NULL    |                |
+-----------------------+--------------+------+-----+---------+----------------+
36 rows in set (0.00 sec)

No migrations to apply 问题解决方法

问题来源:删除表,删除迁移文件,再次迁移时报错;
原因是:django_migrations 表中包含迁移记录,数据库会以为你已经迁移了,只需要删除对应数据即可

参考文档:https://blog.csdn.net/weixin_43996959/article/details/103091067

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值