TransactionManagementError в Django при выполнении миграции

Я новичок в программировании, у меня возникла проблема при выполнении миграции в Django 3.2.9.

Вот мой код, models.py

from django.db import models
from django.db.models.deletion import CASCADE, PROTECT

# Create your models here.


class Promotion(models.Model):
   description = models.CharField(max_length=255)
   discount = models.FloatField()


class Collection(models.Model):
   title = models.CharField(max_length=255)


class Product(models.Model):
   slug = models.SlugField()
   title = models.CharField(max_length=255)
   description = models.TextField()
   unit_price = models.DecimalField(max_digits=6, decimal_places=2)
   inventory = models.IntegerField()
   last_update = models.DateTimeField(auto_now=True)
   collection = models.ForeignKey(Collection, on_delete=models.PROTECT)
   promotions = models.ManyToManyField(Promotion)


class Customer(models.Model):
   MEMBERSHIP_BRONZE = 'B'
   MEMBERSHIP_SILVER = 'S'
   MEMBERSHIP_GOLD = 'G'

   MEMBERSHIP_CHOICES = [
       (MEMBERSHIP_BRONZE, 'Bronze'),
       (MEMBERSHIP_SILVER, 'Silver'),
       (MEMBERSHIP_GOLD, 'Gold')

   ]

   first_name = models.CharField(max_length=255)
   last_name = models.CharField(max_length=255)
   email = models.EmailField(unique=True)
   phone = models.CharField(max_length=255)
   birth_date = models.DateField(null=True)
   membership = models.CharField(
       max_length=1, choices=MEMBERSHIP_CHOICES, default=MEMBERSHIP_BRONZE)


class Order(models.Model):

   STATUS_Pending = 'P'
   STATUS_Complete = 'C'
   STATUS_Failed = 'F'

   STATUS_CHOICES = [
       (STATUS_Pending, 'Pending'),
       (STATUS_Complete, 'Complete'),
       (STATUS_Failed, 'Failed')
   ]

   placed_at = models.DateTimeField(auto_now_date=True)
   payment_status = models.CharField(
       max_length=1, choices=STATUS_CHOICES, default=STATUS_Pending)

   customer = models.ForeignKey(Customer, on_delete=PROTECT)


class Address(models.Model):
   street = models.CharField(max_length=255)
   city = models.CharField(max_length=255)
   customer = models.OneToOneField(
       Customer, on_delete=models.CASCADE, primary_key=True)


class OrderItem(models.Model):
   order = models.ForeignKey(Order, on_delete=PROTECT)
   product = models.ForeignKey(Product, on_delete=PROTECT)
   quantiy = models.PositiveSmallIntegerField()
   unit_price = models.DecimalField(max_digits=5, decimal_places=2)


class Cart(models.Model):
   created_at = models.DateTimeField(auto_now_add=True)


class CartItem(models.Model):
   cart = models.ForeignKey(Cart, on_delete=CASCADE)
   product = models.ForeignKey(Product, on_delete=CASCADE)
   quantity = models.PositiveSmallIntegerField()

Я успешно выполнил : python manage.py makemigrations Но когда я запускаю:python manage.py migrate, я столкнулся с проблемой

Может ли кто-нибудь объяснить мне это? Я новичок в программировании, более 4 месяцев. Я использую Django 3.2.9.

Большое спасибо.

В папке migrations.py можно попробовать удалить вручную все файлы, кроме файла 0001_initial.py. Затем запустите,

python manage.py makemigrations <appname> 
python manage.py migrate <appname>

Возможно, это решит вашу проблему.

Вернуться на верх