跳转到主要内容

Django的AWS S3托管SQLite数据库后端。

项目描述

django-s3-sqlite

PyPI

该项目受到Zappa的启发并开始开发。感谢Rich Jones的所有出色工作。

安装

通过pip安装

$ pip install django-s3-sqlite

将其添加到已安装的应用中

INSTALLED_APPS += ["django_s3_sqlite"]

使用S3支持的数据库引擎

django-s3-sqlite允许使用S3同步的SQLite数据库作为Django数据库引擎。

这将导致并发写入的应用程序出现问题**,但对于没有并发写入(如博客的CMS)的高读应用,它具有非常好的可扩展性,并且比AWS RDS或Aurora便宜得多(每月只需几分钱,而不是每月几十美元)。

** 并发写入通常会丢失,并且不会在并发读取者中显示。这是因为每次请求都会在S3存储和Lambda实例之间转移数据库。

Django 设置与命令

DATABASES = {
    "default": {
        "ENGINE": "django_s3_sqlite",
        "NAME": "sqlite.db",
        "BUCKET": "your-db-bucket",
	"AWS_S3_ACCESS_KEY": "AKIA0000000000000000",  # optional, to lock down your S3 bucket to an IAM user
	"AWS_S3_ACCESS_SECRET": "9tIZfakefakefakefakeT9Q6LD6jB5UyofakeISN",  # optional, to lock down your S3 bucket to an IAM user
    }
}

较新版本的Django(v2.1+)需要比AWS Lambda实例上可用的SQLite(3.7.17)更新的SQLite版本(3.8.3+)。

因此,您需要下载适用于您Python版本的提供的 _sqlite3.so 文件(可在本存储库的 shared-objects 目录中找到)并将其放置在Django项目的根目录下。 注意,目前仅支持Python 3.6和3.8运行时。这些共享对象文件包含SQLite 3.30.1的编译二进制静态构建版本,可用于对应版本的Python。您还需要将此行添加到每个环境的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')

发行说明 & 贡献者

维护者与创作者

此包主要由Wharton Research Data Services的工作人员维护。我们非常高兴沃顿商学院允许我们在开源项目中投入一定的时间。我们根据项目需要添加功能,并尽可能跟上问题和拉取请求。由于时间限制(我们的全职工作!),没有拉取请求的功能请求可能无法实现,但我们始终欢迎新想法,并对贡献者和我们的包用户表示感激。

构建 _sqlite3.so 的说明

如果您想使用此存储库中提供的Python或SQLite的版本,您需要自己构建静态二进制文件。以下说明显示了如何构建文件:https://charlesleifer.com/blog/compiling-sqlite-for-use-with-python-applications/

下载SQLite后,按照说明将其安装到虚拟环境中。您必须在Amazon Linux或CentOS 7(Amazon Linux基于此)上执行安装。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

django-s3-sqlite-0.0.5.tar.gz (4.7 MB 查看散列)

上传时间:

构建分布

django_s3_sqlite-0.0.5-py3-none-any.whl (8.3 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面