跳转到主要内容

使用S3自动化备份和恢复Postgres数据库

项目描述

elefant
---

允许您使用S3中的私有存储备份和恢复您的Heroku数据库。这允许绕过Heroku计划中的备份限制,并确保您的数据除了Heroku之外还备份在其他地方。

仅在Unix机器和Heroku Postgres 9.4上进行了测试。

## 安装

```bash
pip install elefant
```

Elefant的唯一依赖项是Python中的`boto`(https://boto.readthedocs.org/en/latest/)和当然,`postgres`(使用`pg_restore`)。

## 使用

步骤

* 确保`boto`在环境变量中设置了AWS凭证
* 确保$ heroku已登录

Elefant将为您创建一个S3存储桶,只要它未被占用,并且您的AWS用户有权限这样做。

## 备份格式

在实例化时,您将提供`Elephant`的S3存储桶名称和Heroku应用程序名称,然后它将存储以下格式的备份转储

<S3-BUCKET>/<HEROKU-APP-NAME>__%Y_%m_%d-%H_%M_%S.dump

其中格式是[标准Python日期格式](https://docs.pythonlang.cn/2/library/datetime.html#strftime-and-strptime-behavior)。

文件类型是Postgres转储文件,而不是SQL文本转储。

## 示例

```python
from elefant import Elefant

# 创建Elefant对象,传入Heroku应用程序名称和备份存储桶
eft = Elefant("myapp", "mybucket")

print "正在制作备份,上传到S3,然后从Heroku中删除..."
eft.backup()

print "可用的备份:"
backups = eft.backups
for b in backups
print b.name

打印 "从最新备份恢复..."
eft.restore(b)

打印 "使用字符串从最新备份恢复..."
eft.restore(b.name)
```

项目详情


下载文件

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

源分发

Elefant-0.0.6.tar.gz (4.0 kB 查看哈希值)

上传时间

支持者