用于Django的awss3托管SQLite数据库后端。
django-s3-sqlite的Python项目详细描述
django-s3-sqlite公司
这个项目的灵感来自于Zappa。感谢Rich Jones他所有惊人的工作。在
安装
通过pip
安装:
$ pip install django-s3-sqlite
添加到已安装的应用程序:
^{pr2}$使用S3支持的数据库引擎
django-s3-sqlite
允许使用S3-synced SQLite database作为Django数据库引擎。在
这将给并发写入的应用程序带来问题**,但对于没有并发写入的高读应用程序(比如博客的CMS),它的扩展性非常好,而且比AWS RDS或Aurora便宜了一个数量级(每月几美分,而不是每月好几美元)。在
**并发写操作通常会丢失,并且不会出现在并发读卡器中。这是因为数据库在S3存储和每个请求的Lambda实例之间传输。在
Django设置和命令
DATABASES={"default":{"ENGINE":"django_s3_sqlite","NAME":"sqlite.db","BUCKET":"your-db-bucket",}}
较新版本的Django(v2.1+)需要比AWS Lambda实例(3.7.17)更高版本的SQLite(3.8.3+)。在
因此,您需要下载文件_sqlite3.so
(可在该存储库的根目录下使用),并将其放在Django项目的根目录下。该文件包含编译后的二进制静态版本SQLite 3.30.1 for Python3.6。我们希望这将很快包含在Lambda Packages中,但是现在,您还需要在每个环境中向Zappa JSON设置文件中添加以下行:
"use_precompiled_packages": false,
因为SQLite将数据库保存在一个文件中,所以您需要使其尽可能小并进行碎片整理。偶尔执行数据库真空是很好的,尤其是在删除或更新数据之后。有一个命令可以清空你的数据库:
zappa manage [instance] s3_sqlite_vacuum
创建默认管理员用户
您可能需要一个默认用户来管理应用程序,因此现在可以:
$ zappa manage <stage> create_admin_user
或者您可以传递一些参数:
$ zappa manage <stage> create_admin_user one two three
这将在内部进行此调用:
User.objects.create_superuser('one','two','three')
发行说明
在GitHub上:https://github.com/FlipperPA/django-s3-sqlite/releases
维护者和创建者
- 维护者:蒂姆·艾伦(https://github.com/FlipperPA/)
- 创作者:里奇·琼斯(https://github.com/Miserlou/)
这个包主要由Wharton Research Data Services的员工维护。我们很高兴The Wharton School允许我们有一定的时间为开源项目做贡献。我们添加了项目所需的特性,并尽可能地处理问题和请求。由于时间限制(我们的全职工作!),没有拉式请求的功能请求可能无法实现,但我们始终乐于接受新的想法,并感谢您的贡献和我们的软件包用户。在
投稿人-谢谢!
- 彼得·鲍姆加特纳(https://github.com/ipmb/)
- 维克多·查普采夫(https://github.com/vchaptsev/)
- 阿尔莫格·科恩(https://github.com/AlmogCohen/)
- 保罗贝利(https://github.com/pizzapanther/)
- 拉贾J(https://github.com/jnoortheen/)
- jjorissen52(https://github.com/jjorissen52/)
- 詹姆斯·温加(https://github.com/jameswinegar/)
- {罗马式(^ 18)
_sqlite3.so
这些指令说明如何构建必需的静态二进制文件:https://charlesleifer.com/blog/compiling-sqlite-for-use-with-python-applications/
它必须在Amazon Linux或CentOS 7(Amazon Linux的基础上)上完成。在
- 项目
标签: