django - 在 Django 中首次迁移后如何更改数据库(sqlite)?
问题描述
我是 Django 开发的新手,我目前正在按照教程制作博客应用程序。在本教程中,有一个步骤是创建一个函数以允许新用户deafult.jpg
用作他们的头像。
但是,我有一个错字。我没有打字'default.jpg'
,而是打字'default.jpb'
。
然后我迁移到数据库中。因此,当我运行服务器并试用时,没有设置头像的新用户使用"default.jpb"
的是"default.jpg"
.
现在,如何更改数据库以使用正确的定义?
发现问题后,我更正了模型中的拼写错误,然后使用以下命令:
python3 manage.py makemigrations (no changes detected)
python3 manage.py migrate (no migrations to apply)
然后,我决定删除我项目中的迁移,然后再次 makemigrations,我意识到我无法在我的数据库中进行更改。
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(default='default.jpg', upload_to='profile_pics')
def __str__(self):
return f'{self.user.username} Profile'
我希望尚未设置头像的新用户使用位于我的项目中的 default.jpg。
解决方案
问题是您删除了迁移文件。这意味着当您makemigrations
再次运行时,它会将其命名为001...
. 但是数据库仍然会有将该文件迁移到django_migrations
.
取消删除已删除的迁移并运行 makemigrations 然后迁移或编辑您的数据库并删除您已从中删除的迁移django_migrations
推荐阅读
- python - 多张图像的边缘检测
- spring-boot - 如何告诉 docker run 从 docker hub 运行最新的图像?
- kubernetes - 如何使用一些默认模式和数据在 kubernetes 上部署 MariaDB?
- ruby-on-rails - 运行 'react-script start' 得到 400 错误请求
- gitlab-ci - 如何将 gitlab-ci.yml 文件格式化为 HTML
- python-3.x - 如何散列密码以用于 HttpNtlmAuth
- php - Laravel 雄辩与查询构建器的优缺点
- c# - 如何从其他页面初始化 ShellView(Windows 模板工作室)
- r - 从闪亮的服务器运行 python 脚本
- react-native - react-navigation : 如何隐藏一个特定的 tabBar 图标和标签