- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Django 多数据库配置,将 MYSQL 作为我的默认数据库,将 redshift 作为我的分析数据库。我的配置有时看起来像这样:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'xxxx',
'USER': 'xxxx',
'PASSWORD': 'xxxx',
'HOST': 'localhost',
},
'analytics': {
'NAME': 'analytics',
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'XXXXXXXXX',
'PASSWORD': 'XXXXX',
'HOST': 'XXXXX.us-east-1.redshift.amazonaws.com',
'PORT': 5439,
}
}
当我尝试使用以下命令迁移我的分析应用程序时
python manage.py migrate analytics --database analytics
我看到以下错误:
File "/opt/envs/cinematique/bin/django-admin.py", line 5, in <module>
management.execute_from_command_line()
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 60, in handle
return self.show_migration_list(connection, args)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 308, in show_migration_list
loader = MigrationLoader(connection, ignore_no_migrations=True)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 48, in __init__
self.build_graph()
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 183, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 59, in applied_migrations
self.ensure_schema()
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 53, in ensure_schema
editor.create_model(self.Migration)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/db/backends/schema.py", line 270, in create_model
self.execute(sql, params)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/db/backends/schema.py", line 111, in execute
cursor.execute(sql, params)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 81, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute
return self.cursor.execute(sql, params)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/db/utils.py", line 94, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/opt/envs/cinematique/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 65, in execute
return self.cursor.execute(sql, params)
django.db.utils.NotSupportedError: Column "django_migrations.id" has unsupported type "serial".
关于如何解决这个问题有什么想法吗?我正在使用 Django==1.7.9
和 psycopg2==2.6.1
最佳答案
具体问题是:Django 想创建一个带有serial
主键的迁移管理表来跟踪迁移历史。 Redshift 不支持。
不过,该方法更普遍的问题是,您并不真的希望在 Redshift 数据库上进行 Django 风格的迁移(参见 How to change table schema after created in Redshift? 之类的内容)。 Redshift 适用于大型数据库,更改其模式可能是一项重量级的工作。
所以,答案是:不要将 Django 迁移与 redshift 一起使用。 Syncdb 可能没问题,可以初始化您的表,但之后您将需要手动管理模式。不要在其模型适用于 Redshift 的应用程序中创建 migrations__init__.py 文件。
此处的相关/重复问题:
关于python - 在 RedShift 中使用 Django 多数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32719478/
我们可以直接将一张表从一个 Redshift 集群复制到另一个 Redshift 集群吗? 我知道可以使用 s3 作为临时存储来实现表复制(即从第一个集群卸载到 s3,然后从 s3 复制到另一个集群)
我在 AWS Redshift 集群中执行了以下操作以从 S3 读取 Parquet 文件。 create external schema s3_external_schema from data c
我在 AWS Redshift 集群中执行了以下操作以从 S3 读取 Parquet 文件。 create external schema s3_external_schema from data c
在 Amazon Redshift 中创建数据表时,您可以指定各种 encodings,例如 MOSTLY32 或 BYTEDICT 或 LZO。这些是在磁盘上存储列值时使用的压缩。 我想知道我选择的
我在 s3 中有一个压缩文件。我想将它插入到 RedShift 数据库中。我的研究发现做到这一点的唯一方法是启动一个 ec2 实例。将文件移到那里,解压缩,然后将其发送回 S3。然后将其插入到我的 R
为了在 Multi-Tenancy 维度 DW 中处理特定对象的自定义字段,我创建了 Redshift 不太喜欢的超宽非规范化维度表(数百列,列的硬编码限制);)。 user1|attr1|attr2
Redshift 文档将时间序列表确定为最佳实践: http://docs.aws.amazon.com/redshift/latest/dg/c_best-practices-time-series
我正在使用 redshift 的 COPY 命令从 S3 复制 json 数据。 表定义如下: CREATE TABLE my_raw ( id BIGINT IDENTITY(1,1), ... .
如何获取导出的键(数据库元数据)。即使 redshift 不支持外键和主键,我也可以在系统表中看到它们。这里的问题是在系统表中,外键的多列作为数组存在于一列中(尽管redshift不支持数组)。是否可
我正在寻找一种创建 Redshift 查询的方法,该查询将从每天生成的表中检索数据。我们集群中的表具有以下形式: event_table_2016_06_14 event_table_2016_06_
在 Redshift 中,当我们将结果导入 TABLEAU 时,我们试图为从查询返回的列提供更有意义的别名,问题是 RedShift 将所有字母转换为小写字母,即从“事件日期” ” 然后它返回“事件日
据我了解,Redshift 是为性能而不是可用性而构建的。文档 https://aws.amazon.com/redshift/faqs/建议一旦任何一个节点宕机,整个集群都会宕机,直到该节点恢复。在
我试图找出与中止查询相关的原因/错误,其中可以从 STL_query 表中找到中止的查询。我为此使用了 STL_errors,但发现错误上下文与 process id 相关,而不是特定的查询 id。有
我们正在使用 AWS Redshift DB 并希望创建一个在线复制(这样也可以完全更新更改)? 原因是我们希望为我们的一个部门提供一个单独的环境来运行他们自己的查询,因为他们可能会“发疯”并做一些
我在使用 DataGrip 的 Redshift 集群上运行查询需要超过 10 个小时才能运行,不幸的是,这些查询经常失败。唉,DataGrip 与数据库的连接保持的时间不够长,我无法看到查询失败的错
我正在对 redshift 中的一些查询进行基准测试,以便我可以对我对表所做的更改进行一些智能说明,例如添加编码和运行 vacuum。我可以查询stl_query带有 LIKE 子句的表来查找我感兴趣
删除表后,redshift 是否回收可用磁盘空间,或者我们是否需要运行 vaccum。 最佳答案 drop table 释放空间。 如果您正在对表的行进行删除操作,那么您应该触发 vaccumm de
有没有办法在 Amazon Redshift 中计算具有固定窗口大小的加权移动平均值?更详细地说,给定一个带有日期列和值列的表,对于每个日期计算指定大小窗口的加权平均值,并在辅助表中指定权重。 到目前
我注意到第一次在 RedShift 上运行查询需要 3-10 秒。当我再次运行相同的查询时,即使在 WHERE 条件中使用不同的参数,它也会运行得很快(0.2 秒)。 我正在谈论的查询在一个约 1M
我明白 the COPY command非常有效地导入大量数据。但是使用 the INSERT command 将数据从一个表复制到另一个表是慢的。有没有更有效的方法将数据从一个表复制到另一个表?或者
我是一名优秀的程序员,十分优秀!