Column "django_migrations.id" has an unsupported type "serial" [with Amazon Redshift]

I am using django_celery with connecting to Amazon Redshift. To migrate the database, after "makemigrations" I used the command "python manage.py migrate" and an error message appeared, as shown below.

The reason is that Redshift does not support the "serial" data type, but the "django_migrations" table is automatically created that contains the "serial" type.

How to stop Django Migrations from creating this table or not using the serial number in the django_migrations table.

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". 
+7
python django django-migrations amazon-redshift
source share
1 answer

Are you trying to use Redshift as a database for your web application? This is a bad idea, Redshift is a data warehouse, and as such, individual query performance and latency are far from great, not to mention that Redshift does not use primary keys, which Django almost certainly expects.

My recommendation, use PostgreSQL.

0
source share

All Articles