将Airtable数据导出到磁盘上的文件
项目描述
airtable-export
将Airtable数据导出到磁盘上的文件
安装
使用pip
安装此工具
$ pip install airtable-export
用法
您需要以下信息
- 您的Airtable基础ID - 这是一个以
app...
开头的字符串 - 您的Airtable API密钥 - 这是一个以
key...
开头的字符串 - 您希望导出的每个表的名称
您可以通过运行以下命令将所有数据导出到名为export/
的文件夹中
airtable-export export base_id table1 table2 --key=key
此示例将创建两个文件:export/table1.yml
和export/table2.yml
。
您可以通过将API密钥设置为名为AIRTABLE_KEY
的环境变量来替代使用--key
选项。
导出选项
默认情况下,该工具将数据导出为YAML格式。
您还可以使用--json
或--ndjson
选项将数据导出为JSON或换行符分隔的JSON格式。
airtable-export export base_id table1 table2 --key=key --ndjson
您可以一次传递多个格式选项。此命令将为每个导出的表创建一个.json
、.yml
和.ndjson
文件。
airtable-export export base_id table1 table2 \
--key=key --ndjson --yaml --json
SQLite数据库导出
您可以使用--sqlite database.db
选项将表导出到SQLite数据库文件中。
airtable-export export base_id table1 table2 \
--key=key --sqlite database.db
这可以与其他格式选项结合使用。如果您只指定了--sqlite
,则将忽略导出目录参数。
SQLite数据库将为每个导出的表创建一个表。这些表将有一个名为airtable_id
的主键列。
如果您对此命令针对现有SQLite数据库运行,则具有匹配主键的记录将被导出的新记录覆盖。
请求选项
默认情况下,该工具使用python-httpx的默认配置。
您可以使用--user-agent
选项覆盖user-agent
。
airtable-export export base_id table1 table2 --key=key --user-agent "Airtable Export Robot"
您可以使用 --http-read-timeout
选项覆盖网络读取操作的超时时间。有关配置的详细信息,请参阅此处。如果未设置,默认为 5 秒。
airtable-export export base_id table1 table2 --key=key --http-read-timeout 60
使用 GitHub Actions 运行此操作
GitHub Actions 是 GitHub 的工作流程自动化产品。您可以使用它来运行 airtable-export
,以便将您的 Airtable 数据备份到 GitHub 仓库。这样做可以让您看到对 Airtable 数据所做的更改的提交历史,例如 此示例。
要为此 Airtable 数据库运行此操作,您首先需要将以下密钥添加到您的 GitHub 仓库中
- AIRTABLE_BASE_ID
- 基础 ID,以 `app...` 开头的字符串
- AIRTABLE_KEY
- 您的 Airtable API 密钥
- AIRTABLE_TABLES
- 空格分隔的 Airtable 表单列表,您希望备份的表单。如果这些表单中包含空格,则需要用单引号括起来,例如 'My table with spaces in the name' OtherTableWithNoSpaces
设置这些密钥后,将以下内容添加到名为 .github/workflows/backup-airtable.yml
的文件中
name: Backup Airtable
on:
workflow_dispatch:
schedule:
- cron: '32 0 * * *'
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8
- uses: actions/cache@v2
name: Configure pip caching
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-
restore-keys: |
${{ runner.os }}-pip-
- name: Install airtable-export
run: |
pip install airtable-export
- name: Backup Airtable to backups/
env:
AIRTABLE_BASE_ID: ${{ secrets.AIRTABLE_BASE_ID }}
AIRTABLE_KEY: ${{ secrets.AIRTABLE_KEY }}
AIRTABLE_TABLES: ${{ secrets.AIRTABLE_TABLES }}
run: |-
airtable-export backups $AIRTABLE_BASE_ID $AIRTABLE_TABLES -v
- name: Commit and push if it changed
run: |-
git config user.name "Automated"
git config user.email "actions@users.noreply.github.com"
git add -A
timestamp=$(date -u)
git commit -m "Latest data: ${timestamp}" || exit 0
git push
这将每天运行一次(在午夜 UTC 之后的 32 分钟),如果您手动点击“运行工作流程”按钮,也会运行。
开发
要为此工具做出贡献,首先检出代码。然后创建一个新的虚拟环境
cd airtable-export
python -mvenv venv
source venv/bin/activate
或者如果您使用 pipenv
pipenv shell
现在安装依赖项和测试
pip install -e '.[test]'
要运行测试
pytest
项目详情
airtable-export-0.7.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1dd3e6434d97c86eac9bd1c95b33ee8c29b1f58c1f1684a4f9ca541533b9c4c1 |
|
MD5 | 3d692601e7abc046231eee107de6b562 |
|
BLAKE2b-256 | d44f897f00a5cc50baccd793027554b5e5b094109e8e69167da22a13316fa34a |
airtable_export-0.7.1-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 803f2578c6c689ab07c758d7d4599f77e28630037bc7318471ba688565c347db |
|
MD5 | 5bc5e1cb712e9c1c6aa364cf4d689711 |
|
BLAKE2b-256 | 945e014144e1f70bd7e6d72c179b3fadb3f5e2bda10393eb175bc3e54b036e5d |