La columna ‘django_migrations.id’ tiene un tipo no compatible ‘serial’

Uso django_celery para conectarme a Amazon Redshift. Para migrar la base de datos, después de “makemigrations” usé el comando “python manage.py migrate” y aparece un mensaje de error como se muestra a continuación.

El motivo es que Redshift no admite el tipo de datos ‘serie’, pero la tabla ‘django_migrations’ que contiene el tipo ‘serie’ se crea automáticamente.

Cómo detener las migraciones de Django cree esta tabla o evite el uso de la serie en la tabla ‘django_migrations’.

D:\code\test_celery_django>python manage.py migrate Traceback (most recent call last): File "manage.py", line 10, in  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". 

¿Está tratando de usar Redshift como la base de datos back-end para su aplicación web? Esa es una mala idea, Redshift es un almacén de datos y, como tal, el rendimiento y la latencia de las consultas individuales están lejos de ser excelentes, por no mencionar que Redshift no aplica las claves primarias, lo que casi seguramente Django espera.

Mi recomendación, usa PostgreSQL.