summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Godwin <andrew@aeracode.org>2014-06-15 11:25:39 -0700
committerAndrew Godwin <andrew@aeracode.org>2014-06-15 11:25:39 -0700
commitedd9f8a7b2beb0fe2f83a9e50157c45364753121 (patch)
treebd4374808f1aa9b239bb1ffb56f251b7c41eb4da
parent1e5c01c26ec5c0f08901434004b790cb1d5fe5a5 (diff)
Fixed #22563: Added migration to admin, fixed a few more loader issues.
-rw-r--r--django/contrib/admin/migrations/0001_initial.py36
-rw-r--r--django/contrib/admin/migrations/__init__.py0
-rw-r--r--django/db/migrations/autodetector.py2
-rw-r--r--django/db/migrations/loader.py7
4 files changed, 42 insertions, 3 deletions
diff --git a/django/contrib/admin/migrations/0001_initial.py b/django/contrib/admin/migrations/0001_initial.py
new file mode 100644
index 0000000000..988d84dc59
--- /dev/null
+++ b/django/contrib/admin/migrations/0001_initial.py
@@ -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,),
+ ),
+ ]
diff --git a/django/contrib/admin/migrations/__init__.py b/django/contrib/admin/migrations/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/django/contrib/admin/migrations/__init__.py
diff --git a/django/db/migrations/autodetector.py b/django/db/migrations/autodetector.py
index 6ed6edc38e..38371d2556 100644
--- a/django/db/migrations/autodetector.py
+++ b/django/db/migrations/autodetector.py
@@ -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
diff --git a/django/db/migrations/loader.py b/django/db/migrations/loader.py
index 4d37cf080c..0d961c2b69 100644
--- a/django/db/migrations/loader.py
+++ b/django/db/migrations/loader.py
@@ -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])