Better default name for migrations we can't give nice names to

This commit is contained in:
Andrew Godwin 2013-12-11 13:23:07 +00:00
parent 248fdb1110
commit cee4fe7307
1 changed files with 5 additions and 3 deletions

View File

@ -1,4 +1,5 @@
import re import re
import datetime
from django.db.migrations import operations from django.db.migrations import operations
from django.db.migrations.migration import Migration from django.db.migrations.migration import Migration
@ -350,8 +351,9 @@ class MigrationAutodetector(object):
def suggest_name(cls, ops): def suggest_name(cls, ops):
""" """
Given a set of operations, suggests a name for the migration Given a set of operations, suggests a name for the migration
they might represent. Names not guaranteed to be unique; they they might represent. Names are not guaranteed to be unique,
must be prefixed by a number or date. but we put some effort in to the fallback name to avoid VCS conflicts
if we can.
""" """
if len(ops) == 1: if len(ops) == 1:
if isinstance(ops[0], operations.CreateModel): if isinstance(ops[0], operations.CreateModel):
@ -364,7 +366,7 @@ class MigrationAutodetector(object):
return "remove_%s_%s" % (ops[0].model_name.lower(), ops[0].name.lower()) return "remove_%s_%s" % (ops[0].model_name.lower(), ops[0].name.lower())
elif all(isinstance(o, operations.CreateModel) for o in ops): elif all(isinstance(o, operations.CreateModel) for o in ops):
return "_".join(sorted(o.name.lower() for o in ops)) return "_".join(sorted(o.name.lower() for o in ops))
return "auto" return "auto_%s" % datetime.datetime.now().strftime("%Y%m%d_%H%M")
@classmethod @classmethod
def parse_number(cls, name): def parse_number(cls, name):