将Django从2.2迁移到3.2



我正在将我的应用程序从Django 2.2迁移到3.2版本,当通过测试时,它给了我以下错误,似乎是框架原生的。应用程序工作正常,但是测试停止工作。

python manage.py test --keepdb

Using existing test database for alias 'default'...
Traceback (most recent call last):
File "/home/proyecto/src/app/manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "/home/proyecto/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File "/home/proyecto/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/proyecto/env/lib/python3.6/site-packages/django/core/management/commands/test.py", line 23, in run_from_argv
super().run_from_argv(argv)
File "/home/proyecto/env/lib/python3.6/site-packages/django/core/management/base.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/proyecto/env/lib/python3.6/site-packages/django/core/management/base.py", line 398, in execute
output = self.handle(*args, **options)
File "/home/proyecto/env/lib/python3.6/site-packages/django/core/management/commands/test.py", line 55, in handle
failures = test_runner.run_tests(test_labels)
File "/home/proyecto/env/lib/python3.6/site-packages/django/test/runner.py", line 725, in run_tests
old_config = self.setup_databases(aliases=databases)
File "/home/proyecto/env/lib/python3.6/site-packages/django/test/runner.py", line 645, in setup_databases
debug_sql=self.debug_sql, parallel=self.parallel, **kwargs
File "/home/proyecto/env/lib/python3.6/site-packages/django/test/utils.py", line 183, in setup_databases
serialize=connection.settings_dict['TEST'].get('SERIALIZE', True),
File "/home/proyecto/env/lib/python3.6/site-packages/django/db/backends/base/creation.py", line 79, in create_test_db
run_syncdb=True,
File "/home/proyecto/env/lib/python3.6/site-packages/django/core/management/__init__.py", line 181, in call_command
return command.execute(*args, **defaults)
File "/home/proyecto/env/lib/python3.6/site-packages/django/core/management/base.py", line 398, in execute
output = self.handle(*args, **options)
File "/home/proyecto/env/lib/python3.6/site-packages/django/core/management/base.py", line 89, in wrapped
res = handle_func(*args, **kwargs)
File "/home/proyecto/env/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 246, in handle
fake_initial=fake_initial,
File "/home/proyecto/env/lib/python3.6/site-packages/django/db/migrations/executor.py", line 117, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/home/proyecto/env/lib/python3.6/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/home/proyecto/env/lib/python3.6/site-packages/django/db/migrations/executor.py", line 227, in apply_migration
state = migration.apply(state, schema_editor)
File "/home/proyecto/env/lib/python3.6/site-packages/django/db/migrations/migration.py", line 126, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/home/proyecto/env/lib/python3.6/site-packages/django/db/migrations/operations/models.py", line 761, in database_forwards
schema_editor.add_index(model, self.index)
File "/home/proyecto/env/lib/python3.6/site-packages/django/db/backends/postgresql/schema.py", line 218, in add_index
self.execute(index.create_sql(model, self, concurrently=concurrently), params=None)
TypeError: create_sql() got an unexpected keyword argument 'concurrently'```

如果更改Django版本而不更新代码,将会遇到问题。阅读https://docs.djangoproject.com/en/3.2/howto/upgrade-version/和https://docs.djangoproject.com/en/3.2/releases/,它会帮助你。

这似乎是你的Postgresql模式迁移模式的问题,检查旧的模式迁移,看看是否有新的列或索引,否则我们在这里检查

在上面提到的路径"/home/proyecto/env/lib/python3.6/site-packages/django/db/backends/postgresql/schema.py"上共享schema.py,我们检查了218行,似乎索引应该并发创建,可能并发定义为一个无法理解的关键字

最新更新