Получение ошибки при использовании миграции после inspectdb с помощью sqlite
Мне нужно сделать API из существующей sqlite базы данных. Я использовал inspectdb для создания моделей из базы данных.
- Do I need to manually add the primary keys(id) for all tables after inspect in my models.py?
- After that what should I do, migrate? Makemigrations?
- 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 и понятия не имею, что нужно сделать.
Из того, что я видел, это в основном создание БД с нуля с использованием классов моделей, но в этом случае мне придется заново создавать всю БД и заполнять ее заново.
Ошибка при миграции