Получение ошибки при использовании миграции после inspectdb с помощью sqlite

Мне нужно сделать API из существующей sqlite базы данных. Я использовал inspectdb для создания моделей из базы данных.

  1. Do I need to manually add the primary keys(id) for all tables after inspect in my models.py?
  2. After that what should I do, migrate? Makemigrations?
  3. I am getting error related to one of the tables in the databases after doing migrate,(issue with one table referencing other). Is there an issue with the db?

Вот мой settings.py

А вот так выглядит мой models.py.

# This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
#   * Rearrange models' order
#   * Make sure each model has one field with primary_key=True
#   * Make sure each ForeignKey and OneToOneField has `on_delete` set to the desired behavior
#   * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
# Feel free to rename the models, but don't rename db_table values or field names.
from django.db import models
from django.db.models.deletion import CASCADE


class Category(models.Model):
    name = models.CharField()
    description = models.CharField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'category'

class CustomerGroup(models.Model):
    name = models.CharField()

    class Meta:
        managed = False
        db_table = 'customer_group'

class Customer(models.Model):
    first_name = models.CharField()
    last_name = models.CharField()
    address = models.CharField(blank=True, null=True)
    phone = models.CharField(blank=True, null=True)
    email = models.CharField(blank=True, null=True)
    group_id = models.ForeignKey(CustomerGroup, on_delete=CASCADE)

    class Meta:
        managed = False
        db_table = 'customer'



class Supplier(models.Model):
    name = models.CharField()
    address = models.CharField(blank=True, null=True)
    phone = models.CharField(blank=True, null=True)
    email = models.CharField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'supplier'


class Product(models.Model):
    name = models.CharField()
    price = models.IntegerField()
    supplier_id = models.ForeignKey(Supplier, on_delete=CASCADE)
    category_id = models.ForeignKey(Category, on_delete=CASCADE)

    class Meta:
        managed = False
        db_table = 'product'


class ProductOrder(models.Model):
    customer_id = models.ForeignKey(Customer, on_delete=CASCADE)
    product_id = models.ForeignKey(Product, on_delete=CASCADE)
    order_discount = models.IntegerField(blank=True, null=True)
    total_price = models.IntegerField(blank=True, null=True)
    order_date = models.DateTimeField()

    class Meta:
        managed = False
        db_table = 'product_order'

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

Из того, что я видел, это в основном создание БД с нуля с использованием классов моделей, но в этом случае мне придется заново создавать всю БД и заполнять ее заново.

Ошибка при миграции

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