Django后端为CockroachDB
项目描述
CockroachDB后端为Django
先决条件
您必须安装
您也可以使用以下之一
二进制包是开发和测试的实用选择,但在生产中建议使用从源构建的包。
安装和使用
使用与您的Django版本相对应的django-cockroachdb版本。例如,为了获取Django 5.1.x的最新兼容版本
pip install django-cockroachdb==5.1.*
Django的次要版本号与django-cockroachdb的次要版本号不对应。使用每个的最后一个次要版本。
配置Django的DATABASES
设置,如下所示
DATABASES = {
'default': {
'ENGINE': 'django_cockroachdb',
'NAME': 'django',
'USER': 'myprojectuser',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '26257',
# If connecting with SSL, include the section below, replacing the
# file paths as appropriate.
'OPTIONS': {
'sslmode': 'verify-full',
'sslrootcert': '/certs/ca.crt',
# Either sslcert and sslkey (below) or PASSWORD (above) is
# required.
'sslcert': '/certs/client.myprojectuser.crt',
'sslkey': '/certs/client.myprojectuser.key',
# If applicable
'options': '--cluster={routing-id}',
},
},
}
如果您使用Kerberos身份验证,您可以在'OPTIONS'
中使用键'krbsrvname'
指定自定义服务名称。
关于Django字段的说明
-
IntegerField
使用与BigIntegerField
相同的存储,因此IntegerField
在inspectdb
中被视为BigIntegerField
。 -
AutoField
和BigAutoField
都以 64 位整数形式存储,并使用DEFAULT unique_rowid()
作为默认值。
Django QuerySets 的注意事项
-
QuerySet.explain()
接受verbose
、types
、opt
、vec
和distsql
选项,这些选项对应于 CockroachDB 的参数。例如>>> Choice.objects.explain(opt=True, verbose=True) 'scan polls_choice\n ├── columns: id:1 question_id:4 choice_text:2 votes:3\n ├── stats: [rows=1]\n ├── cost: 1.1\n ├── key: (1)\n ├── fd: (1)-->(2-4)\n └── prune: (1-4)'
常见问题解答
GIS 支持
要使用 CockroachDB 中的 django.contrib.gis
,请在 Django 的 DATABASES
设置中使用 'ENGINE': 'django_cockroachdb_gis'
。
禁用 CockroachDB 遥测
默认情况下,CockroachDB 会将您使用的 django-cockroachdb 版本发送回 Cockroach Labs。要禁用此功能,请在 Django 设置中设置 DISABLE_COCKROACHDB_TELEMETRY = True
。
CockroachDB 24.1.x 及更早版本中的已知问题和限制
-
CockroachDB 无法禁用约束检查,这意味着 Django 中的某些功能(如 fixtures 中的正向引用)不受支持。
-
迁移有一些限制。CockroachDB 不支持
-
由于 性能问题,不支持
Field.db_comment
和Meta.db_table_comment
选项。 -
不支持查询
- SELECT 中的混合类型加法:
unsupported binary operator: <int> + <float>
- 产生不同类型的除法:
unsupported binary operator: <int> / <int> (desired <int>)
- power() 数据库函数不接受负指数:
power(): integer out of range
- sum() 不支持不同类型的参数:
sum(): unsupported binary operator: <float> + <int>
- greatest() 不支持不同类型的参数:
greatest(): expected <arg> to be of type <type>, found type <other type>
SmallAutoField
生成的值对于任何相应的外键来说都太大.
- SELECT 中的混合类型加法:
-
GIS
- 不支持某些数据库函数:
AsGML
、AsKML
、AsSVG
和GeometryDistance
。 - 不支持某些 3D 函数或签名:
ST_3DPerimeter
、ST_3DExtent
、ST_Scale
和ST_LengthSpheroid
。 - 在测地场上不支持
Length
数据库函数:st_lengthspheroid(): unimplemented。 Union
可能会因为 未知签名:st_union(geometry, geometry) 而崩溃。- ST_DistanceSpheroid 的球体参数 不受支持:
unknown signature: st_distancespheroid(geometry, geometry, string)
。 - 以下查找不受支持
- 不支持某些数据库函数:
CockroachDB 23.1.x 及之前版本的已知问题和限制
- CockroachDB 不支持按 JSON 排序。
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
构建分发
django-cockroachdb-5.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 12502612b60133a4a2e6633246cd1801616e212e999f7db1b98efb8cb39cdc17 |
|
MD5 | 955b44abef8e49e3bfac430aefbe85dd |
|
BLAKE2b-256 | a79904af34054640f26c7a5a01d0724735d6918a48a25ff3f7b82afd5a091c73 |
django_cockroachdb-5.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9cb8ad02b9e9ea7d7e7284b902a70fb2455fa6d98bfb40ec222171ac203a8ee7 |
|
MD5 | 2dc81a13cfe4425ae92be82ad627ed67 |
|
BLAKE2b-256 | b25ac44c2dd79be313d8d51bb4bacfa8844d102152383316e784658c640956c7 |