YugabyteDB的后端Django
项目描述
先决条件
GCC
Python 3.8及以上
Psycopg2-yugabytedb (推荐)
Django 3.2及以上
需要Django后端YugabyteDB
YugabyteDB需要为Django单独的后端。这主要是由于以下3个原因。
Django试图在Django测试套件中将Inet数据类型作为主键。由于这不受支持,我们在YB后端中将Inet类型映射为varchar(15)和varchar(39)。
我们还需要支持从int到BigInt以及numeric(m,n)到double precision的类型更改。这是Django数据库迁移所需的。目前,YB后端忽略了这些类型更改。
Django PostgreSQL后端不支持负载均衡,即使与YugabyteDB智能驱动程序一起使用。
从PyPI安装
使用以下命令安装django-yugabytedb软件包
$ pip install django-yugabytedb
从源代码在Python虚拟环境中安装
django-yugabytedb软件包也可以从源代码安装
$ git clone https://github.com/yugabyte/yb-django.git
$ python -m pip install -r <repo_path>/yb-django/requirements.txt
$ python -m pip install -e <repo_path>/yb-django/
检查是否正确安装
$ pip list —local
在您的应用程序中使用后端
更新Django项目中设置中的DATABASES设置,以便使用Django YB后端指向YB服务器
DATABASES = {
'default': {
'ENGINE': 'django_yugabytedb',
'NAME': 'yugabyte',
'HOST': 'localhost',
'PORT': 5433,
'USER': 'yugabyte',
}
}
使用集群感知负载均衡
DATABASES = {
'default': {
'ENGINE': 'django_yugabytedb',
'NAME': 'yugabyte',
'HOST': 'localhost',
'PORT': 5433,
'USER': 'yugabyte',
'LOAD_BALANCE': 'True'
}
}
使用拓扑感知负载均衡
DATABASES = {
'default': {
'ENGINE': 'django_yugabytedb',
'NAME': 'yugabyte',
'HOST': 'localhost',
'PORT': 5433,
'USER': 'yugabyte',
'LOAD_BALANCE': 'True',
'TOPOLOGY_KEYS': 'cloud1.region1.zone1'
}
}
已知错误和问题
在YugabyteDB中创建索引速度较慢。
由于Inet在后端映射为varchar,inet列中的数据与Inet类型之间的比较将失败。
对于2.9版本之前的YugabyteDB,不支持savepoint功能。
不支持删除主键。
ALTER TABLE ADD COLUMN UNIQUE尚未支持。
添加新列时使用默认值填充现有行尚未在yugabytedb中实现。
类型从int更改为BigInt和numeric(m,n)到double precision尚未支持。
ALTER INDEX尚未支持。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
django-yugabytedb-4.0.0.post1.tar.gz (11.6 kB 查看散列值)
构建分布
关闭
散列值 for django_yugabytedb-4.0.0.post1-py3-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | efbdbf46a35b7b8ad7e718c6c0a587b36a8e6d22c6acca26af4a7b41c83b485b |
|
MD5 | bc907abfcd15c7a9c87a460321757cca |
|
BLAKE2b-256 | a83ec443f2595a9172f5af4da7b816ab02c60f5223a3b4024ffdeb3287e52bbb |