Пробовал так много вещей, касающихся проблемы миграции Django, но все же я не могу исправить эту ошибку? - PullRequest
0 голосов
/ 28 февраля 2019

Привет, ребята, я получаю ошибку с миграциями за последние два дня. Я добавил новое поле в модель, а затем попытался запустить makemigratons Это работало нормально, но когда я попытался migrate, я получил ошибка даты и времени . После долгих усилий мне пришлось окончательно удалить мою базу данных. И после этого она работала нормально, но когда я пытаюсь выполнить миграцию, она теперь показывает мне

return Database.Cursor.execute(self, query, params) django.db.utils.OperationalError: no such table: app_upload

Несмотря на то, что у меня есть модель выгрузки

here,s the models.py

from django.db import models
from django.contrib.auth.models import User
from django.urls import reverse
from tinymce import HTMLField

from datetime import datetime

class Category(models.Model):
    title = models.CharField(max_length = 20)

    def __str__(self):
        return self.title

class Post(models.Model):
    image = models.ImageField()
    title = models.CharField(max_length = 100)
    body = HTMLField()
    published_date = models.DateTimeField(auto_now_add = True)
    categories = models.ManyToManyField(Category)
    featured = models.BooleanField(default = False)


    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('blog',kwargs = {
            'pk':self.pk
            })

    @property
    def get_comments(self):
        return self.comments.all()




class Comment(models.Model):
    post = models.ForeignKey(Post,on_delete=models.CASCADE,related_name = "comments")
    name = models.CharField(max_length = 200)
    body = models.TextField(default = True)
    parent = models.ForeignKey("self",on_delete = models.CASCADE)
    pub_date = models.DateTimeField(auto_now_add = True)

    class Meta:
        ordering = ['-pub_date']

    def __str__(self):
       return self.name


    def children(self):
        return Comment.objects.filter(parent = self)

    @property
    def is_parent(self):
        if self.parent is not None:
            return False
        return True 


class Upload(models.Model):
    image = models.ImageField(upload_to = 'images',)
    file = models.FileField(upload_to = 'images/%Y/%M/%d/')

Здесь показана миграция, которая была создана

# Generated by Django 2.1.7 on 2019-02-27 13:37

from django.db import migrations, models
import django.db.models.deletion
import tinymce.models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=20)),
            ],
        ),
        migrations.CreateModel(
            name='Comment',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
                ('body', models.TextField(default=True)),
                ('pub_date', models.DateTimeField(auto_now_add=True)),
                ('parent', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='app.Comment')),
            ],
            options={
                'ordering': ['-pub_date'],
            },
        ),
        migrations.CreateModel(
            name='Post',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('image', models.ImageField(upload_to='')),
                ('title', models.CharField(max_length=100)),
                ('body', tinymce.models.HTMLField()),
                ('published_date', models.DateTimeField(auto_now_add=True)),
                ('featured', models.BooleanField(default=False)),
                ('categories', models.ManyToManyField(to='app.Category')),
            ],
        ),
        migrations.CreateModel(
            name='Upload',
            fields=[
                ('image', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('file', models.DateTimeField(auto_now_add=True)),
            ],
        ),
        migrations.AddField(
            model_name='comment',
            name='post',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comments', to='app.Post'),
        ),
    ]

Здесь показана миграция для uploads.py

ГенерируетсяDjango 2.1.7 на 2019-02-28 06: 22 * ​​1018 * из django.db импорт миграции, модели класс Миграция (migrations.Migration): dependencies = [ ('app', '0002_auto_20190227_0541'), ] operations = [ migrations.AddField( model_name='upload', name='id', field=models.AutoField(auto_created=True, default=1, primary_key=True, serialize=False, verbose_name='ID'), preserve_default=False, ), ]

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Если вы не беспокоитесь о существующих данных в базе данных и просто хотите исправить миграции и запустить и запустить

  • Проверьте, находится ли ваше приложение в
INSTALLED_APPS = [
    ......
    'my_app',
    .....

]
  • Удалить базу данных
  • Создать базу данных
  • Удалить все файлы миграции, но не __init__.py
  • python manage.py makemigrations
  • python manage.py migrate
0 голосов
/ 28 февраля 2019

Вы удалили базу данных, поэтому такой таблицы нет.

Поскольку вы удалили базу данных, вы также можете удалить файлы миграции и восстановить их.

...