Python 在django中,迁移未应用于数据库
通过删除字段并添加一些字段,以及添加新表,我更新了数据库中表的一些字段。我运行:Python 在django中,迁移未应用于数据库,python,mysql,django,database,Python,Mysql,Django,Database,通过删除字段并添加一些字段,以及添加新表,我更新了数据库中表的一些字段。我运行: python manage.py makemigrations python manage.py migrate 我没有检测到任何更改,也没有应用任何更改 在django admin中,我看不到新表,当我单击向数据库中添加新记录时,它会显示旧字段。这也反映在数据库中,因为它显示的是旧字段而不是新表 我已经删除了数据库中的所有表,并删除了每个应用程序中的所有迁移,留下了init.py,我仍然会遇到这个错误,这让我很
python manage.py makemigrations
python manage.py migrate
我没有检测到任何更改,也没有应用任何更改
在django admin中,我看不到新表,当我单击向数据库中添加新记录时,它会显示旧字段。这也反映在数据库中,因为它显示的是旧字段而不是新表
我已经删除了数据库中的所有表,并删除了每个应用程序中的所有迁移,留下了init.py,我仍然会遇到这个错误,这让我很困惑,因为它如何显示我删除的旧字段,并且在我删除表和迁移时没有记录
有关守则:
from __future__ import unicode_literals
from django.db import models
from src.profiles.models import Profiles
# Create your models here.
class Product(models.Model):
name = models.CharField(max_length=200, primary_key=True)
description = models.CharField(max_length=1000)
price = models.DecimalField(max_digits=10, decimal_places=2)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
def __str__(self):
return self.name
class ProductsOwned(models.Model):
ownedID = models.ForeignKey(Profiles.user)
product = models.ForeignKey(Product.name)
purchaseDate = models.DateTimeField(auto_now=True)
expiryDate = models.DateTimeField()
def __str__(self):
return self.name
如果您需要任何澄清或有任何问题,请询问
编辑:我可以直接删除模型中的所有代码,并且不会检测到任何更改
编辑2:将迁移代码上载到粘贴站:
编辑3:我正在编辑的应用程序是目录,我已安装的应用程序:
INSTALLED_APPS = [
'profiles',
'contact',
'crispy_forms',
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'stripe',
'checkout',
'catalog',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
如果您的
目录
没有任何数据,并且可以安全地删除与目录
应用程序相关的表,则您可以执行以下操作
DELETE FROM django\u migrations,其中app='catalog'
catalog\migrations
中删除所有迁移python manage.py makemigrations目录
另一方面,在settings.py中列出应用程序的标准方法是先列出django应用程序,然后列出第三方应用程序,然后列出您自己的应用程序 如果您的
目录
没有任何数据,并且可以安全地删除与目录
应用程序相关的表,则您可以执行以下操作
DELETE FROM django\u migrations,其中app='catalog'
catalog\migrations
中删除所有迁移python manage.py makemigrations目录
另一方面,在settings.py中列出应用程序的标准方法是先列出django应用程序,然后列出第三方应用程序,然后列出您自己的应用程序 由于某些原因,迁移文件可能被标记为已迁移 注: 1.如果这是此应用程序中的1迁移文件,则文件名应为0001_首字母。可能您之前有一个名为的迁移文件,您可以将其删除
参考:可能由于某些原因,迁移文件被标记为已迁移 注: 1.如果这是此应用程序中的1迁移文件,则文件名应为0001_首字母。可能您之前有一个名为的迁移文件,您可以将其删除
参考资料:那么您在运行
makemigrations
时是否遇到错误?此外,您的外键应该是这样的:models.ForeignKey(产品)
和models.ForeignKey(配置文件)
。(假设Profiles是一个模型)我是django的新手,所以谢谢!我没有得到任何错误,当我删除表并删除迁移时,它会重新创建旧数据库。从那时起,检测不到任何变化。这就是问题所在吗?它解决了迁移问题吗?不小心按了enter键,我编辑了以前的评论。它无法修复迁移问题,因为它无法检测到更改。我应用了你说的,它仍然没有检测到任何变化。奇怪!您说您删除了所有迁移并删除了所有表,而您的django应用程序仍然基于旧模型创建了表。在运行makemigrations
之后,您是否可以发布应用程序创建的迁移?那么,您在运行makemigrations
时是否遇到错误?此外,您的外键应该是这样的:models.ForeignKey(产品)
和models.ForeignKey(配置文件)
。(假设Profiles是一个模型)我是django的新手,所以谢谢!我没有得到任何错误,当我删除表并删除迁移时,它会重新创建旧数据库。从那时起,检测不到任何变化。这就是问题所在吗?它解决了迁移问题吗?不小心按了enter键,我编辑了以前的评论。它无法修复迁移问题,因为它无法检测到更改。我应用了你说的,它仍然没有检测到任何变化。奇怪!您说您删除了所有迁移并删除了所有表,而您的django应用程序仍然基于旧模型创建了表。运行makemigrations
后,您能否发布应用程序创建的迁移?