如何通过 aws redshift 管理 django'orm?

Posted

技术标签:

【中文标题】如何通过 aws redshift 管理 django\'orm?【英文标题】:How to manage django'orm via aws redshift?如何通过 aws redshift 管理 django'orm? 【发布时间】:2018-04-18 08:58:39 【问题描述】:

我是 AWS redshift 的新开发人员。

据我所知,AWS redshift 与 postgresql 非常相似

redshift 和 Django 之间是否有任何用于管理的库或模块(如自动迁移、自动迁移)?

我确实使用 SQLAlchemy 和 redshift 创建了一个表并访问了数据,但我不知道如何在 python Django 中做这件事。

任何建议或想法都可以!!

这个命令出现这个错误

python manage.py migrate


django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table (Column "django_migrations.id" has unsupported type "serial".

【问题讨论】:

【参考方案1】:

您可以轻松地将 RedShift 服务与您的 Django 应用程序连接起来。

尝试将以下代码添加到您的settings.py 文件中

DATABASES = 
    'default': 
        'NAME': '[Your Cluster Name]',
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'USER': '[Username ]',
        'PASSWORD': '[Password]',
        'HOST': '[Pathname]',
        'PORT': 5439,
    ,

但是,您需要知道 Redshift 不强制执行主键。在我看来,在 Django 应用程序中使用 Redshift 作为默认数据库并不是一个好主意,因为 Redshift 对数据仓库而不是应用程序很有帮助。

总结一下,我的建议是 PostgreSQL。

【讨论】:

我想知道的是,如果连接像你的建议,django'orm 将支持完整的功能,如 (python manage.py makemigrations...)...? @user3773632,当然可以。如果你像之前提到的那样连接你的数据库,你就可以访问所有 Django 的 ORM。

以上是关于如何通过 aws redshift 管理 django'orm?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 AWS Quicksight 连接到 Redshift Spectrum 上的外部架构/表?

您如何将 DynamoDB Map/List 类型转换为通过 AWS Pipeline 到 Redshift?

如何使用 AWS Redshift 执行 Bash 脚本

AWS Redshift 脚本导出

通过 AWS Glue 执行 Redshift 过程

是否可以从另一个账户使用 IAM 角色访问 Redshift?如何?