Столбец «django_migrations.id» имеет неподдерживаемый тип «serial» [с Amazon Redshift]

Я использую django_celery с подключением к Amazon Redshift. Чтобы перенести базу данных, после «makemigrations» я использовал команду «python manage.py migrate», и появилось сообщение об ошибке, как показано ниже.

Причина в том, что Redshift не поддерживает тип данных «serial», но автоматически создается таблица «django_migrations», содержащая тип «serial».

Как остановить Django Migrations, создайте эту таблицу или избегайте использования серийного номера в таблице django_migrations.

D:\code\test_celery_django>python manage.py migrate
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 390, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 441, in execute
    output = self.handle(*args, **options)
  File "C:\Python27\lib\site-packages\django\core\management\commands\migrate.py", line 93, in handle
    executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "C:\Python27\lib\site-packages\django\db\migrations\executor.py", line 19, in __init__
    self.loader = MigrationLoader(self.connection)
  File "C:\Python27\lib\site-packages\django\db\migrations\loader.py", line 47, in __init__
    self.build_graph()
  File "C:\Python27\lib\site-packages\django\db\migrations\loader.py", line 180, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "C:\Python27\lib\site-packages\django\db\migrations\recorder.py", line 59, in applied_migrations
    self.ensure_schema()
  File "C:\Python27\lib\site-packages\django\db\migrations\recorder.py", line 53, in ensure_schema
    editor.create_model(self.Migration)
  File "C:\Python27\lib\site-packages\django\db\backends\base\schema.py", line 286, in create_model
    self.execute(sql, params or None)
  File "C:\Python27\lib\site-packages\django\db\backends\base\schema.py", line 111, in execute
    cursor.execute(sql, params)
  File "C:\Python27\lib\site-packages\django\db\backends\utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "C:\Python27\lib\site-packages\django\db\backends\utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "C:\Python27\lib\site-packages\django\db\utils.py", line 97, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "C:\Python27\lib\site-packages\django\db\backends\utils.py", line 62, in execute
    return self.cursor.execute(sql)
django.db.utils.NotSupportedError: Column "django_migrations.id" has unsupported type "serial".

person Engkarat Techapanurak    schedule 07.07.2015    source источник
comment
Я вижу то же самое - вы смогли понять это?   -  person josephmisiti    schedule 21.09.2015
comment
какой драйвер базы данных вы используете?   -  person Jerzyk    schedule 01.07.2016


Ответы (1)


Вы пытаетесь использовать Redshift в качестве серверной базы данных для своего веб-приложения? Это плохая идея, Redshift — это хранилище данных, и поэтому производительность отдельных запросов и задержка далеко не велики, не говоря уже о том, что Redshift не применяет первичные ключи, чего почти наверняка ожидает Django.

Моя рекомендация, используйте PostgreSQL.

person tokenizer_fsj    schedule 20.04.2017