# supabase备份数据库的方法

**URL:** <https://niege.app/t/topic/15>\
**Category:** 极客工坊\
**Tags:** 教程\
**Created:** [2025 年2 月 12 日 10:31 UTC](https://niege.app/t/topic/15 "2025-02-12T10:31:23Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

作者： ![niege](https://niege.app/user_avatar/niege.app/niege/32/3_2.png) [@niege](https://niege.app/u/niege)\
发布日期： [2025 年2 月 12 日 10:31 UTC](https://niege.app/t/topic/15/1 "2025-02-12T10:31:24Z")

</div>

如果你的 OpenWebUI 使用的是 Supabase 作为外接数据库，Supabase 本身并没有直接在 UI 界面提供一键“备份下载”的功能。不过，你可以通过以下方法备份你的数据库数据。以下是详细步骤：

* * *

### 方法 1：使用 Supabase **SQL Dump** 功能

Supabase 提供了一个便捷的方法，可以导出整个数据库的 SQL 文件。

#### 步骤：

1. **登录 Supabase**  
访问 [Supabase](https://supabase.com/)，登录你的账户并进入对应的项目。

2. **打开 SQL 编辑器**  
在项目控制台中，点击左侧菜单的 **SQL Editor** 。

3. **导出 SQL Dump**  
在 SQL 编辑器中，运行以下命令生成整个数据库的 SQL 文件：

4. **保存备份文件**  
将生成的 `backup.sql` 文件下载到本地，作为数据库备份。

* * *

### 方法 2：通过 **Supabase API** 导出数据

如果你只需要备份特定表的数据，可以使用 Supabase 的 API 将数据导出为 JSON 格式。

#### 步骤：

1. **获取 Supabase API 密钥**  
在 Supabase 项目控制台中，点击左侧菜单的 **Project Settings** ，找到 **API** 部分，记录下 `anon` 和 `service_role` 密钥。

2. **使用 API 导出数据**  
使用以下 API 请求获取数据（以 `your_table_name` 为例）：

3. **保存 JSON 数据**  
将 API 返回的 JSON 数据保存为文件（如 `backup.json`）。

* * *

### 方法 3：使用 **pg\_dump** 工具

如果你有数据库的直接访问权限，可以使用 PostgreSQL 的 `pg_dump` 工具导出数据库。

#### 步骤：

1. **获取数据库连接信息**  
在 Supabase 项目控制台中，点击左侧菜单的 **Database** ，找到 **Connection Info** ，记录下以下信息：

2. **安装 PostgreSQL 客户端**  
如果你的本地机器没有安装 `pg_dump`，可以通过以下命令安装：

3. **导出数据库**  
使用以下命令导出数据库：

4. **保存备份文件**  
将生成的 `backup.dump` 文件保存到本地。

* * *

### 方法 4：使用 Supabase **Storage** 功能

如果你的数据包含文件或图片等资源，可以结合 Supabase 的 Storage 功能备份这些文件。

#### 步骤：

1. **登录 Supabase**  
访问 [Supabase](https://supabase.com/)，登录你的账户并进入对应的项目。

2. **打开 Storage 管理**  
在项目控制台中，点击左侧菜单的 **Storage** 。

3. **下载文件**  
手动将 Storage 中的文件下载到本地，或者使用 Supabase 的 API 批量导出文件。

* * *

### 注意事项

- **定期备份** ：建议定期备份数据库，以防止数据丢失。
- **数据安全** ：确保备份文件存储在安全的位置，避免泄露敏感信息。
- **恢复测试** ：定期测试备份文件是否可以成功恢复，确保备份的有效性。

* * *

### 总结

如果你的 OpenWebUI 使用的是 Supabase 作为外接数据库，可以通过以下方法备份数据：

1. 使用 Supabase 的 SQL Dump 功能导出整个数据库。
2. 通过 Supabase API 导出特定表的数据为 JSON 格式。
3. 使用 `pg_dump` 工具直接导出数据库。
4. 使用 Supabase Storage 功能备份文件和资源。

选择适合你的方法进行备份，并确保数据的安全性。

---

<div class="post-metadata">

作者： ![niege](https://niege.app/user_avatar/niege.app/niege/32/3_2.png) [@niege](https://niege.app/u/niege)\
发布日期： [2025 年2 月 12 日 10:34 UTC](https://niege.app/t/topic/15/2 "2025-02-12T10:34:02Z")

</div>

OpenWebUI（原名 AnythingLLM）目前并未在用户界面（UI）中提供直接导出数据库的功能。因此，备份数据库需要手动操作。以下是备份 OpenWebUI 数据库的详细方法：

* * *

### 方法 1：直接备份数据库文件

OpenWebUI 默认使用 SQLite 数据库，数据库文件通常位于项目的 `storage` 目录中。

#### 步骤：

1. **找到数据库文件**  
OpenWebUI 的数据库文件默认路径为：

2. **复制数据库文件**  
将 `database.sqlite` 文件复制到安全的位置（如外部硬盘或云存储）。

3. **恢复数据库**  
如果需要恢复数据库，只需将备份的 `database.sqlite` 文件放回原目录即可。

* * *

### 方法 2：使用 SQLite 命令备份

如果你希望以更灵活的方式备份数据库，可以使用 SQLite 的命令行工具。

#### 步骤：

1. **安装 SQLite**  
如果系统未安装 SQLite，可以通过以下命令安装：

2. **备份数据库**  
使用以下命令将数据库导出为 `.sql` 文件：

3. **恢复数据库**  
如果需要恢复，可以使用以下命令导入备份的 `.sql` 文件：

* * *

### 方法 3：将数据导出为 JSON 格式（通过 API）

如果希望通过程序化的方式备份数据，可以使用 OpenWebUI 的 API 导出数据。

#### 步骤：

1. **获取 API 密钥**  
在 OpenWebUI 的设置中找到 API 密钥。

2. **调用 API 导出数据**  
使用以下 API 请求获取数据：

3. **恢复数据**  
如果需要恢复，可以使用导入 API：

* * *

### 注意事项

- 备份时确保 OpenWebUI 服务已停止，以避免数据库文件损坏。
- 如果使用 Docker 部署 OpenWebUI，数据库文件通常位于容器的 `/app/storage` 目录中。可以使用 `docker cp` 命令将其复制到本地：

```bash
docker cp <container_id>:/app/storage/database.sqlite ./backup.sqlite

```

- 定期备份数据库，以防止数据丢失。

* * *

### 总结

目前 OpenWebUI 不支持在 UI 界面中直接导出数据库，但可以通过以下方法备份：

1. 直接复制 `database.sqlite` 文件。
2. 使用 SQLite 命令导出为 `.sql` 文件。
3. 通过 API 导出数据为 JSON 格式。

选择适合你的方法进行备份，并确保备份文件的安全存储。
