Django框架迁移后创建表manage.py makemigrations 和 manage.py migrate不起作用的问题

在Django框架中,需要根据app中的models.py文件中编写的类来自动创建表

class UserInfo(models.Model):
    def __str__(self):
        return self.name
    # 创建字段
    name = models.CharField(max_length=32, verbose_name='姓名')
    password = models.CharField(max_length=64, verbose_name='密码')
    age = models.IntegerField(verbose_name='年龄')
    account = models.DecimalField(max_digits=20, decimal_places=2, default=0, verbose_name='账户余额')
    create_time = models.DateField(verbose_name='入职时间')

    # 级联删除
    depart = models.ForeignKey(to='Department', to_field='id', on_delete=models.CASCADE, verbose_name='部门')
    # 置空
    # depart = models.ForeignKey(to='Department', to_field='id', null=True, blank=True, on_delete=models.SET_NULL)

    gender_choices = (
        (1, '男'),
        (2, '女'),
    )
    gender = models.SmallIntegerField(choices=gender_choices, verbose_name='性别')

当然前提是要创建好数据库,Django不能自动创建数据库

create database dj1;

然后导入本机或云端数据库配置到全局settings.py文件中

以我本地mysql为例

数据库 | Django 文档 | Django

DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": "dj1",
        "USER": "root",
        "PASSWORD": "123456",
        "HOST": "127.0.0.1",
        "PORT": "3306",
    }
}

此时理论上只要执行manage.py makemigrations 和 manage.py migrate就可以自动创建数据库中的表了

但是我是在别的机器上完成的项目,把核心文件上传到git,别的垃圾文件类似__pycache__,migrations中的数据库迁移记录,都给删除了,然后导入到本地,此时无法正常创建表文件

排查后,发现是因为migrations文件夹中的__init__.py也被我删除了,所以无法正常执行

在migrations文件夹中创建一个空文件__init__.py,即可正确执行了!

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值