Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django 1.7 Migrations

Tags:

I am using django 1.7 and I just added a custom user model. When I run either python3 manage.py makemigrations or python3 manage.py migrate I get the error: TypeError: __init__() got an unexpected keyword argument 'preserve_default'. This issue came along after adding the new custom user model. The complete traceback is:

Traceback (most recent call last):   File "manage.py", line 10, in <module>     execute_from_command_line(sys.argv)   File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 385, in execute_from_command_line     utility.execute()   File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 377, in execute     self.fetch_command(subcommand).run_from_argv(self.argv)   File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 288, in run_from_argv     self.execute(*args, **options.__dict__)   File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 338, in execute     output = self.handle(*args, **options)   File "/usr/local/lib/python3.4/dist-packages/django/core/management/commands/migrate.py", line 63, in handle     executor = MigrationExecutor(connection, self.migration_progress_callback)   File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/executor.py", line 17, in __init__     self.loader = MigrationLoader(self.connection)   File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/loader.py", line 48, in __init__     self.build_graph()   File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/loader.py", line 173, in build_graph     self.load_disk()   File "/usr/local/lib/python3.4/dist-packages/django/db/migrations/loader.py", line 103, in load_disk     migration_module = import_module("%s.%s" % (module_name, migration_name))   File "/usr/lib/python3.4/importlib/__init__.py", line 109, in import_module     return _bootstrap._gcd_import(name[level:], package, level)   File "<frozen importlib._bootstrap>", line 2231, in _gcd_import   File "<frozen importlib._bootstrap>", line 2214, in _find_and_load   File "<frozen importlib._bootstrap>", line 2203, in _find_and_load_unlocked   File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked   File "<frozen importlib._bootstrap>", line 1129, in _exec   File "<frozen importlib._bootstrap>", line 1448, in exec_module   File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed   File "/home/denny/workspace/teenvestor/core/migrations/0003_auto_20141017_1749.py", line 7, in <module>     class Migration(migrations.Migration):   File "/home/denny/workspace/teenvestor/core/migrations/0003_auto_20141017_1749.py", line 46, in Migration     preserve_default=True, TypeError: __init__() got an unexpected keyword argument 'preserve_default' 
like image 699
Denny Avatar asked Oct 17 '14 19:10

Denny


People also ask

Does Django handle migrations?

Django can't automatically generate data migrations for you, as it does with schema migrations, but it's not very hard to write them. Migration files in Django are made up of Operations, and the main operation you use for data migrations is RunPython .

What is the difference between Makemigrations and migrate in Django?

migrate, which is responsible for applying migrations, as well as unapplying and listing their status. makemigrations, which is responsible for creating new migrations based on the changes you have made to your models.


1 Answers

Django 1.7.1 added support for the preserve_default param in AlterField. Therefore an upgrade of Django from version 1.7 will resolve the issue.

pip install django --upgrade python manage.py migrate

like image 66
gorantq Avatar answered Oct 12 '22 23:10

gorantq