1.7a1 - Migration syntax error

136 views
Skip to first unread message

Pradip Caulagi

unread,
Feb 4, 2014, 4:18:50 AM2/4/14
to django...@googlegroups.com
I am using the following (simplified) model that doesn't migrate using
the new migrations in Django 1.7a1 -

$
$ pip freeze
Django==1.7a1
argparse==1.2.1
distribute==0.6.34
wsgiref==0.1.2
$
$ cat blog/models.py
from django.db import models
from django.utils import timezone

class Blog(models.Model):

title = models.CharField(max_length=200)
created = models.DateTimeField(default=timezone.now())

def __unicode__(self):
return self.title

$
$ python manage.py makemigrations
Migrations for 'blog':
0001_initial.py:
- Create model Blog
$
$ python manage.py migrate
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File
"/home/pcaulagi/projects/test/local/lib/python2.7/site-packages/Django-1.7a1-py2.7.egg/django/core/management/__init__.py",
line 427, in execute_from_command_line
utility.execute()
File
"/home/pcaulagi/projects/test/local/lib/python2.7/site-packages/Django-1.7a1-py2.7.egg/django/core/management/__init__.py",
line 419, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File
"/home/pcaulagi/projects/test/local/lib/python2.7/site-packages/Django-1.7a1-py2.7.egg/django/core/management/base.py",
line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File
"/home/pcaulagi/projects/test/local/lib/python2.7/site-packages/Django-1.7a1-py2.7.egg/django/core/management/base.py",
line 337, in execute
output = self.handle(*args, **options)
File
"/home/pcaulagi/projects/test/local/lib/python2.7/site-packages/Django-1.7a1-py2.7.egg/django/core/management/commands/migrate.py",
line 62, in handle
executor = MigrationExecutor(connection,
self.migration_progress_callback)
File
"/home/pcaulagi/projects/test/local/lib/python2.7/site-packages/Django-1.7a1-py2.7.egg/django/db/migrations/executor.py",
line 14, in __init__
self.loader = MigrationLoader(self.connection)
File
"/home/pcaulagi/projects/test/local/lib/python2.7/site-packages/Django-1.7a1-py2.7.egg/django/db/migrations/loader.py",
line 48, in __init__
self.build_graph()
File
"/home/pcaulagi/projects/test/local/lib/python2.7/site-packages/Django-1.7a1-py2.7.egg/django/db/migrations/loader.py",
line 145, in build_graph
self.load_disk()
File
"/home/pcaulagi/projects/test/local/lib/python2.7/site-packages/Django-1.7a1-py2.7.egg/django/db/migrations/loader.py",
line 103, in load_disk
migration_module = import_module("%s.%s" % (module_name,
migration_name))
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in
import_module
__import__(name)
File "/tmp/bar/blog/migrations/0001_initial.py", line 17
('created', models.DateTimeField(default=datetime.datetime(2014, 2,
4, 9, 15, 59, 685251, tzinfo=<UTC>))),

^
SyntaxError: invalid syntax
$
$

What am I missing? I know that we can have use auto_now for the
DateTimeField but I want the value to be shown populated with current
datetime that can be overridden by the user, if they want.

Thanks,
Pradip

Russell Keith-Magee

unread,
Feb 4, 2014, 6:19:30 PM2/4/14
to Django Users
Hi Pradip,

On Tue, Feb 4, 2014 at 5:18 PM, Pradip Caulagi <ppc....@gmail.com> wrote:
I am using the following (simplified) model that doesn't migrate using the new migrations in Django 1.7a1 -



  File "/tmp/bar/blog/migrations/0001_initial.py", line 17
    ('created', models.DateTimeField(default=datetime.datetime(2014, 2, 4, 9, 15, 59, 685251, tzinfo=<UTC>))),

                              ^
SyntaxError: invalid syntax
$
$

What am I missing?  I know that we can have use auto_now for the DateTimeField but I want the value to be shown populated with current datetime that can be overridden by the user, if they want.

A Django migration file is just a Python file. The error you're seeing is a Python error - the code you've entered, at line 17, at the point where the caret is pointing, isn't valid syntax.

Specifically - "tzinfo=<UTC>" isn't legal Python. 

This is the 0001_initial migration - did you manually write or update this migration, or is this code entirely automatically generated? If it's manually written or edited, then fix what you wrote :-) If it's the result of automated output, then it appears you've found a bug. I'm guessing it's a problem with the serialisation of datetimes as defaults. If you can open a ticket describing the model that caused the problem, that would be very helpful.
 
Yours,
Russ Magee %-)

Pradip Caulagi

unread,
Feb 5, 2014, 1:11:42 AM2/5/14
to django...@googlegroups.com
On Wednesday 05 February 2014 04:49 AM, Russell Keith-Magee wrote:

>
> This is the 0001_initial migration - did you manually write or update
> this migration, or is this code entirely automatically generated? If
> it's manually written or edited, then fix what you wrote :-) If it's the
> result of automated output, then it appears you've found a bug. I'm
> guessing it's a problem with the serialisation of datetimes as defaults.
> If you can open a ticket describing the model that caused the problem,
> that would be very helpful.

Hi Russ,

the file was generated by makemigrations. I have raised a ticket here -
https://code.djangoproject.com/ticket/21954

Thanks,
--
Pradip P Caulagi
Reply all
Reply to author
Forward
0 new messages