Я получаю ошибки при попытке сделать миграции, а таблицы не создаются

#python-3.x #django #postgresql #django-models

#python-3.x #django #postgresql #django-модели

Вопрос:

Итак, я получаю некоторые ошибки при попытке запустить «python3 manage.py совершайте миграции». Небольшой фрагмент ошибок выглядит следующим образом:

 Traceback (most recent call last):
 File "/home/vincentqchen/.venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute
  return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "catalog_video" does not exist
LINE 1: INSERT INTO "catalog_video" ("url", "title", "length", "view...
                    ^
 

Это моя папка models:

 from django.db import models
import os
from datetime import datetime
#Google api
import json
from googleapiclient.discovery import build
#Scheduler
from apscheduler.schedulers.background import BackgroundScheduler

class Video(models.Model):
    #youtube_cache = models.ForeignKey(YoutubeCache,on_delete=models.CASCADE)
    url = models.CharField(max_length=600, null=False, blank=False)
    title = models.CharField(max_length=600, null=False, blank=False)
    length = models.CharField(max_length=600, null=False, blank=False)
    views = models.IntegerField(null=False, blank=False)
    date = models.DateField(auto_now=False, auto_now_add=False)
    ytType = models.CharField(max_length=30, null=False, blank=False)
# Create your models here.
def ytCacheHelper():
    youtube = build('youtube','v3',developerKey = Secret)

    #Most popular videos in the us
    YTrequest = youtube.videos().list(
        part="snippet,contentDetails,statistics",
        chart="mostPopular",
        regionCode="US"
    )
    response = YTrequest.execute()
    #Python dictionary of all top yt videos
    items = response['items']
    for x in range(len(items)):
        # Parts of video
        snippet = items[x]['snippet']
        contentDetails = items[x]['contentDetails']
        statistics = items[x]['statistics']
        # Figure out length of video
        length = contentDetails['duration']
        length = length[2:]
        #Figure out date of video
        date = snippet['publishedAt']
        year = int(date[:4])
        month = int(date[5:7])
        day = int(date[8:10])
        hour = int(date[11:13])
        minute = int(date[14:16])
        date = datetime(year, month, day, hour, minute)
        # Set up the video model
        mostViewedVideo = Video(url='https://www.youtube.com/watch?v=' items[x]['id'], title=snippet['title'], length=length, views=statistics['viewCount'], date=date, ytType='mostPopular')
        mostViewedVideo.save()

#Schedule daily database updates
scheduler = BackgroundScheduler()
scheduler.add_job(ytCacheHelper, 'interval', seconds=3)
scheduler.start()
 

У меня запущен планировщик для получения информации от yt каждый день (для целей тестирования он установлен на 3 секунды). Я подумал, что, возможно, ytCacheHelper вызывает проблемы, поэтому я прокомментировал это и переделал миграции. К сожалению, postgres все еще не создал таблицу. Я попытался удалить всю свою базу данных и повторить миграции, но это не сработало. Он по-прежнему выдавал мне те же ошибки.

Вот файл миграции

 # Generated by Django 3.1.4 on 2021-01-08 04:26

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Video',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('url', models.CharField(max_length=600)),
                ('title', models.CharField(max_length=600)),
                ('length', models.CharField(max_length=600)),
                ('views', models.IntegerField()),
                ('date', models.DateField()),
                ('ytType', models.CharField(max_length=30)),
            ],
        ),
    ]
 

РЕДАКТИРОВАТЬ — я не знаю, как это работает, но я просто изменил название своей модели, а затем переделал миграции, и это каким-то образом сработало.

РЕДАКТИРОВАТЬ 2 — Это как-то снова сломалось. Я так запутался. Я меняю свои модели и запускаю makemigrations, и он говорит, что никаких изменений не было сделано. И я снова получаю одни и те же ошибки. Моя папка migrations также больше не существует.

Комментарии:

1. В Catalog_Video вашем model.py … происходит ли это после редактирования вашего models.py ?

2. удаление предыдущей миграции сработало бы