用于Django的awss3托管SQLite数据库后端。

django-s3-sqlite的Python项目详细描述


django-s3-sqlite公司

PyPI

这个项目的灵感来自于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

维护者和创建者

这个包主要由Wharton Research Data Services的员工维护。我们很高兴The Wharton School允许我们有一定的时间为开源项目做贡献。我们添加了项目所需的特性,并尽可能地处理问题和请求。由于时间限制(我们的全职工作!),没有拉式请求的功能请求可能无法实现,但我们始终乐于接受新的想法,并感谢您的贡献和我们的软件包用户。在

投稿人-谢谢!

_sqlite3.so

这些指令说明如何构建必需的静态二进制文件:https://charlesleifer.com/blog/compiling-sqlite-for-use-with-python-applications/

它必须在Amazon Linux或CentOS 7(Amazon Linux的基础上)上完成。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
选项卡内的java 安卓工具栏   java接口VS API VS公共类   无法解析java。lang.ClassNotFoundException:在安卓 studio中找不到类“com.example.安卓.camera2basic.AutoFitTextureView”?   java等待线程正常完成   java在JTable中的prepareRenderer方法中编辑单元格数据是否可行?   java SessionNotCreatedException selenium webdriver   java Android Studio Gradle CreateProcess错误=2   java找不到适用于异常(int)的构造函数   javascript如何在不使用正则表达式的情况下检查输入是否为表情符号?   从JAVA运行ant时,JAVA_HOME变量不正确   long的java min值引发异常   java如何在这段代码中实现侦听器?   带有透明文本的java Android按钮   图像Java扫描仪问题(JFrame)   java模拟输入蒸汽似乎在Junit测试的第一次输入中就被吃掉了   压缩Java Deflater,现在和将来的结果相同(确定性)   java JTable getModel()。setValueAt从数组中删除第一个元素   java我有不同于编译器和计算器的价值   使用C#客户端调用基本身份验证java webservice   java相同类型的多个@Embedded字段在持久化后始终为空