Я выполняю миграцию, но таблица не создается в базе данных.
Когда я выполняю миграцию, я получаю следующее сообщение в терминале:
Миграции для 'bookList': bookList/migrations/0001_initial.py: Создать модель bookList
<Операции для выполнения:
Применить все миграции: admin, auth, bookList, contenttypes, sessions
Затем я выполняю команду migrate:
from django.db import models
# Create your models here.
class BookList(models.Model):
site_name = models.TextField()
site_id = models.TextField()
image = models.TextField()
book = models.TextField()
author = models.TextField()
publisher = models.TextField()
price = models.TextField()
link = models.TextField()
category_name = models.TextField()
category_id = models.TextField()
class Meta:
managed = False
db_table = 'books'
Содержание моего файла 0001_initial.py следующее:
# Generated by Django 4.1.1 on 2022-09-26 13:17
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='BookList',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('site_name', models.TextField()),
('site_id', models.TextField()),
('image', models.TextField()),
('book', models.TextField()),
('author', models.TextField()),
('publisher', models.TextField()),
('price', models.TextField()),
('link', models.TextField()),
('category_name', models.TextField()),
('category_id', models.TextField()),
],
options={
'db_table': 'books',
'managed': False,
},
),
]
<
Вы можете попробовать еще раз, не используя эту строку managed = False
в своем коде.
Согласно документации
Если False, то для этой модели не будут выполняться операции создания, изменения или удаления таблиц базы данных. Это полезно, если модель представляет существующую таблицу или представление базы данных, которое было создано другим способом. Это единственное отличие, когда managed=False.
Итак, причина, по которой Django не создает таблицу, заключается в том, что вы говорите ему не управлять таблицами для этой модели. Просто измените в Meta, managed на True, или просто удалите его.