迁移运行良好,但Django会不会产生一定的表

问题描述 投票:0回答:1

其后我在我的模型做了一些修改,我放弃了我的数据库,并开始再次进行迁移。

python3 manage.py makemigrations    //it creates all the tables
python3 manage.py migrate           //the output is OK

然而,当我尝试查看我的4桌,我看到他们中的一个缺失。这里是我的models.py文件:

from django.db import models
from datetime import datetime
from django.contrib.auth.models import AbstractUser

class UserTwo(AbstractUser):
    name = models.CharField(max_length=20, unique=True)
    surname = models.CharField(max_length=20, unique=True)
    username = models.CharField(max_length=20, unique=True)
    password = models.CharField(max_length=20, unique=True)
    email = models.EmailField(max_length=20, unique=True)

use_in_migrations = True

class Story(models.Model):
    title = models.CharField(max_length=200)
    story = models.TextField(default="")
    date = models.DateTimeField(default=datetime.now())
    author = models.ForeignKey(UserTwo, on_delete=models.CASCADE)
    likes = models.IntegerField(default=0)
    comments = models.IntegerField(default=0)

    def __str__(self):
        return "%s %s %s " % (self.title, self.story, self.date)


class Comment(models.Model):
    com = models.CharField(max_length=400)
    date = models.DateTimeField(default=datetime.now())
    user = models.ForeignKey(UserTwo, on_delete=models.CASCADE)
    story = models.ForeignKey(Story, on_delete=models.CASCADE)

    def __str__(self):
        return "%s %s" % (self.com, self.date)


class Like(models.Model):
    user = models.ForeignKey(UserTwo, on_delete=models.CASCADE, unique=False)
    story = models.ForeignKey(Story, on_delete=models.CASCADE, unique=False)
    timestamp = models.DateTimeField(default=datetime.now())

    def __str__(self):
        return self.user.username

该UserTwo模型是迁移也没有创造的一个表中的一个。你要知道,这是我丢弃DB之前所做的更改发生在模型中。

这是我的移民文件:

import datetime
from django.conf import settings
import django.contrib.auth.models
from django.db import migrations, models
import django.utils.timezone    

class Migration(migrations.Migration):

initial = True

dependencies = [
    ('auth', '0009_alter_user_last_name_max_length'),
]

operations = [
    migrations.CreateModel(
        name='UserTwo',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
            ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
            ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
            ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
            ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
            ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
            ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
            ('name', models.CharField(max_length=20, unique=True)),
            ('surname', models.CharField(max_length=20, unique=True)),
            ('username', models.CharField(max_length=20, unique=True)),
            ('password', models.CharField(max_length=20, unique=True)),
            ('email', models.EmailField(max_length=20, unique=True)),
            ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
            ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
        ],
        options={
            'verbose_name': 'user',
            'verbose_name_plural': 'users',
            'abstract': False,
        },
        managers=[
            ('objects', django.contrib.auth.models.UserManager()),
        ],
    ),
    migrations.CreateModel(
        name='Comment',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ('com', models.CharField(max_length=400)),
            ('date', models.DateTimeField(default=datetime.datetime(2019, 2, 4, 9, 57, 42, 656878))),
        ],
    ),
    migrations.CreateModel(
        name='Like',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ('timestamp', models.DateTimeField(default=datetime.datetime(2019, 2, 4, 9, 57, 42, 657598))),
        ],
    ),
    migrations.CreateModel(
        name='Story',
        fields=[
            ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
            ('title', models.CharField(max_length=200)),
            ('story', models.TextField(default='')),
            ('date', models.DateTimeField(default=datetime.datetime(2019, 2, 4, 9, 57, 42, 656267))),
            ('likes', models.IntegerField(default=0)),
            ('comments', models.IntegerField(default=0)),
            ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
        ],
    ),
    migrations.AddField(
        model_name='like',
        name='story',
        field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rubies.Story'),
    ),
    migrations.AddField(
        model_name='like',
        name='user',
        field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
    ),
    migrations.AddField(
        model_name='comment',
        name='story',
        field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='rubies.Story'),
    ),
    migrations.AddField(
        model_name='comment',
        name='user',
        field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
    ),
]

此外,我还有其他项目在我的Django的文件夹了。难道这是为什么它不工作?有没有人有任何想法,为什么出现这种情况?谢谢! :)

django
1个回答
0
投票

从UserTwo删除use_in_migrations = True,然后再试一次。

© www.soinside.com 2019 - 2024. All rights reserved.