[1.7.x] Fixed #22563: Added migration to admin, fixed a few more loader issues.
This commit is contained in:
parent
2a45086deb
commit
c903543127
|
@ -0,0 +1,36 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('contenttypes', '__latest__'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='LogEntry',
|
||||
fields=[
|
||||
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||
('action_time', models.DateTimeField(auto_now=True, verbose_name='action time')),
|
||||
('object_id', models.TextField(null=True, verbose_name='object id', blank=True)),
|
||||
('object_repr', models.CharField(max_length=200, verbose_name='object repr')),
|
||||
('action_flag', models.PositiveSmallIntegerField(verbose_name='action flag')),
|
||||
('change_message', models.TextField(verbose_name='change message', blank=True)),
|
||||
('content_type', models.ForeignKey(to_field='id', blank=True, to='contenttypes.ContentType', null=True)),
|
||||
('user', models.ForeignKey(to=settings.AUTH_USER_MODEL, to_field='id')),
|
||||
],
|
||||
options={
|
||||
'ordering': ('-action_time',),
|
||||
'db_table': 'django_admin_log',
|
||||
'verbose_name': 'log entry',
|
||||
'verbose_name_plural': 'log entries',
|
||||
},
|
||||
bases=(models.Model,),
|
||||
),
|
||||
]
|
|
@ -205,7 +205,7 @@ class MigrationAutodetector(object):
|
|||
elif dep[0] != app_label:
|
||||
# External app dependency. See if it's not yet
|
||||
# satisfied.
|
||||
for other_operation in self.generated_operations[dep[0]]:
|
||||
for other_operation in self.generated_operations.get(dep[0], []):
|
||||
if self.check_dependency(other_operation, dep):
|
||||
deps_satisfied = False
|
||||
break
|
||||
|
|
|
@ -135,7 +135,7 @@ class MigrationLoader(object):
|
|||
return self.disk_migrations[results[0]]
|
||||
|
||||
def check_key(self, key, current_app):
|
||||
if key[1] != "__first__" or key in self.graph:
|
||||
if (key[1] != "__first__" and key[1] != "__latest__") or key in self.graph:
|
||||
return key
|
||||
# Special-case __first__, which means "the first migration" for
|
||||
# migrated apps, and is ignored for unmigrated apps. It allows
|
||||
|
@ -151,7 +151,10 @@ class MigrationLoader(object):
|
|||
return
|
||||
if key[0] in self.migrated_apps:
|
||||
try:
|
||||
return list(self.graph.root_nodes(key[0]))[0]
|
||||
if key[1] == "__first__":
|
||||
return list(self.graph.root_nodes(key[0]))[0]
|
||||
else:
|
||||
return list(self.graph.root_nodes(key[0]))[-1]
|
||||
except IndexError:
|
||||
raise ValueError("Dependency on app with no migrations: %s" % key[0])
|
||||
raise ValueError("Dependency on unknown app: %s" % key[0])
|
||||
|
|
Loading…
Reference in New Issue