跳转到主要内容

将Airtable数据导出到磁盘上的文件

项目描述

airtable-export

PyPI Changelog Tests License

将Airtable数据导出到磁盘上的文件

安装

使用pip安装此工具

$ pip install airtable-export

用法

您需要以下信息

  • 您的Airtable基础ID - 这是一个以app...开头的字符串
  • 您的Airtable API密钥 - 这是一个以key...开头的字符串
  • 您希望导出的每个表的名称

您可以通过运行以下命令将所有数据导出到名为export/的文件夹中

airtable-export export base_id table1 table2 --key=key

此示例将创建两个文件:export/table1.ymlexport/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 (5.7 kB 查看哈希)

上传时间

构建分发

airtable_export-0.7.1-py3-none-any.whl (9.8 kB 查看哈希)

上传时间 Python 3

由以下支持

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