Opened 10 years ago
Closed 10 years ago
#24884 closed Uncategorized (invalid)
Migrations created in Python2.7 fail in Python3.4
Reported by: | Chris Mitchell | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.8 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
A migration file created with Python2.7 is failing with the following error in Python3.4:
File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/core/management/__init__.py", line 338, in execute_from_command_line utility.execute() File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/core/management/__init__.py", line 330, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/core/management/base.py", line 390, in run_from_argv self.execute(*args, **cmd_options) File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/core/management/base.py", line 441, in execute output = self.handle(*args, **options) File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/core/management/commands/migrate.py", line 221, in handle executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial) File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/db/migrations/executor.py", line 110, in migrate self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial) File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/db/migrations/executor.py", line 147, in apply_migration state = migration.apply(state, schema_editor) File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/db/migrations/migration.py", line 115, in apply operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/db/migrations/operations/models.py", line 59, in database_forwards schema_editor.create_model(model) File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/db/backends/base/schema.py", line 261, in create_model self.quote_name(field.column), File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/db/backends/base/schema.py", line 114, in quote_name return self.connection.ops.quote_name(name) File "/home/chris/.virtualenvs/djangui3/lib/python3.4/site-packages/Django-1.8.2-py3.4.egg/django/db/backends/sqlite3/operations.py", line 98, in quote_name if name.startswith('"') and name.endswith('"'): TypeError: startswith first arg must be bytes or a tuple of bytes, not str
The offending entry in my migration is:
('_value', models.TextField(db_column=b'value')),
Removal of the b allows migration to carry on.
Note:
See TracTickets
for help on using tickets.
Please see Supporting Python 2 and 3 in the migrations topic guide.