Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在django中,迁移未应用于数据库_Python_Mysql_Django_Database - Fatal编程技术网

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',
]

如果您的
目录
没有任何数据,并且可以安全地删除与
目录
应用程序相关的表,则您可以执行以下操作

  • 如果您使用的是MySQL,
    DELETE FROM django\u migrations,其中app='catalog'
  • catalog\migrations
    中删除所有迁移
  • 现在执行
    python manage.py makemigrations目录

  • 另一方面,在settings.py中列出应用程序的标准方法是先列出django应用程序,然后列出第三方应用程序,然后列出您自己的应用程序

    如果您的
    目录
    没有任何数据,并且可以安全地删除与
    目录
    应用程序相关的表,则您可以执行以下操作

  • 如果您使用的是MySQL,
    DELETE FROM django\u migrations,其中app='catalog'
  • catalog\migrations
    中删除所有迁移
  • 现在执行
    python manage.py makemigrations目录

  • 另一方面,在settings.py中列出应用程序的标准方法是先列出django应用程序,然后列出第三方应用程序,然后列出您自己的应用程序

    由于某些原因,迁移文件可能被标记为已迁移

    注: 1.如果这是此应用程序中的1迁移文件,则文件名应为0001_首字母。可能您之前有一个名为的迁移文件,您可以将其删除

  • 我还建议在已安装的应用程序中保留所有django应用程序,例如django.contrib.admin、django.contrib.auth。。。以上是您的自定义应用程序
  • 最后,如果没有任何效果,您可以取消制作迁移文件

    python manage.py迁移——伪核心0003

    python manage.py migrate——伪核心零 (注意,这会解除所有迁移文件的锁定)

    然后


    参考:

    可能由于某些原因,迁移文件被标记为已迁移

    注: 1.如果这是此应用程序中的1迁移文件,则文件名应为0001_首字母。可能您之前有一个名为的迁移文件,您可以将其删除

  • 我还建议在已安装的应用程序中保留所有django应用程序,例如django.contrib.admin、django.contrib.auth。。。以上是您的自定义应用程序
  • 最后,如果没有任何效果,您可以取消制作迁移文件

    python manage.py迁移——伪核心0003

    python manage.py migrate——伪核心零 (注意,这会解除所有迁移文件的锁定)

    然后


    参考资料:

    那么您在运行
    makemigrations
    时是否遇到错误?此外,您的外键应该是这样的:
    models.ForeignKey(产品)
    models.ForeignKey(配置文件)
    。(假设Profiles是一个模型)我是django的新手,所以谢谢!我没有得到任何错误,当我删除表并删除迁移时,它会重新创建旧数据库。从那时起,检测不到任何变化。这就是问题所在吗?它解决了迁移问题吗?不小心按了enter键,我编辑了以前的评论。它无法修复迁移问题,因为它无法检测到更改。我应用了你说的,它仍然没有检测到任何变化。奇怪!您说您删除了所有迁移并删除了所有表,而您的django应用程序仍然基于旧模型创建了表。在运行
    makemigrations
    之后,您是否可以发布应用程序创建的迁移?那么,您在运行
    makemigrations
    时是否遇到错误?此外,您的外键应该是这样的:
    models.ForeignKey(产品)
    models.ForeignKey(配置文件)
    。(假设Profiles是一个模型)我是django的新手,所以谢谢!我没有得到任何错误,当我删除表并删除迁移时,它会重新创建旧数据库。从那时起,检测不到任何变化。这就是问题所在吗?它解决了迁移问题吗?不小心按了enter键,我编辑了以前的评论。它无法修复迁移问题,因为它无法检测到更改。我应用了你说的,它仍然没有检测到任何变化。奇怪!您说您删除了所有迁移并删除了所有表,而您的django应用程序仍然基于旧模型创建了表。运行
    makemigrations
    后,您能否发布应用程序创建的迁移?