一个Django库,用于从python3运行时连接到Google云数据存储。
django-gcloud-connectors的Python项目详细描述
Django GCloud连接器(gcloudc)
注意:此项目现在位于GitLab
这个项目的目标是为Google云创建Django数据库连接器/后端。在
目前它包含一个用于Google云数据存储(Firestore模式下的数据存储)的连接器 但在未来,它还可能包括一个Firestore连接器,甚至是一个MemoryStore连接器。在
这是Djangae project中数据存储连接器的延续 但在python3上转换为使用Cloud Datastore API。在
如果您有兴趣提交修补程序,请参阅CONTRIBUTING.md
寻求商业支持?在
Potato为其所有开源项目提供商业支持,我们可以根据您的需要定制支持包。在
如果您对商业支持、培训或咨询感兴趣,请拨打opensource@potatolondon.com联系我们
运行测试
$ pip3 install --user tox
$ tox
引擎盖下的毒物检测结果./manage.py test
。要将参数传递给这个命令,只需用双连字符将它们分开。e、 g
云数据存储模拟器自动启动
gcloudc为runserver
和test
命令提供重写
启动和停止云数据存储模拟器实例。要启用此功能,请在INSTALLED_APPS
设置的开头添加gcloudc.commands
。在
释放过程
发布到pypi由GitLab CI管理。要创建新版本,请创建相关标记 把它推到gitlab遥控器。但首先你应该做一些版本的摆弄。。。在
1. Update the version in setup.py to the new version by removing the 'a' suffix (most likely)
2. Commit this change
3. Run `git tag -a X.Y.Z -m "Some description"
4. Run `git push origin master && git push --tags`
5. Open setup.py again, bump to the *next* release version, use an 'a' suffix
6. Run `git commit -am "Bump to alpha version" && git push origin master`
这将触发将在中发布包的管道测试.pypi.org.
如果成功,那么可以手动触发同一管道上的作业publish to prod pypi
,以部署到正式的pypi注册表。在
注意事项
强烈建议在使用这个ORM后端之前阅读云数据存储API文档。了解数据存储 vs SQL将有助于避免意外惊喜!在
Google云数据存储是传统SQL数据库的not,因此数据存储后端不支持 Django ORM的所有功能(尽管它支持大多数功能)。还有,有些事情并不总是这样 你会料到的。由于数据存储是一个非SQL数据库,因此基本上不支持依赖于跨表查询或聚合的任何内容。在
以下是一些限制和差异:
- 我们提供专门的atomic()装饰器,包括对“独立”事务的支持
- 不支持保存点,嵌套的atomic()块实际上是一个无操作
- Django的atomic()修饰符将不起作用
- 不支持select_related(),尽管prefetch_related()可以工作
- 不支持跨表排序
- 在atomic()块中最多只能读取或写入500个实体
- 不支持聚合查询
- 查询只能包含一个不等式运算(gt,lt,lte,gte,isnull=False),并且resultset必须按要测试不等式的字段排序
当然,这样做的好处是,您可以构建Django应用程序,实现近乎无限的数据可伸缩性,并增加正常运行时间。在
- 项目
标签: