平台

从 Neon 迁移到 Supabase

将您现有的 Neon 数据库迁移至 Supabase。


本指南将演示如何将您的 Neon 数据库迁移至 Supabase,在充分利用 Postgres 功能的同时,获得构建项目所需的所有特性。

获取 Neon 数据库凭证

  1. 登录 Neon 控制台 https://console.neon.tech/login
  2. 在左侧选择 Projects
  3. 从列表中选择您的项目
  4. 在项目仪表盘中找到 Connection string 并点击 Copy snippet 复制到剪贴板(不要勾选"pooled connection")

示例:

1
postgresql://neondb_owner:xxxxxxxxxxxxxxx-random-word-yyyyyyyy.us-west-2.aws.neon.tech/neondb?sslmode=require

设置 OLD_DB_URL 环境变量

在命令行中使用剪贴板中的 Neon 数据库凭证设置 OLD_DB_URL 环境变量。

示例:

1
export OLD_DB_URL="postgresql://neondb_owner:xxxxxxxxxxxxxxx-random-word-yyyyyyyy.us-west-2.aws.neon.tech/neondb?sslmode=require"

获取 Supabase 连接字符串

  1. 如果您是 Supabase 新用户,请先创建项目 请记住您的密码,后续步骤会用到。如果忘记密码,可以在此重置

  2. 在项目仪表盘中点击 Connect

  3. 在 Session pooler 下,点击连接字符串右侧的 Copy 按钮复制到剪贴板

设置 NEW_DB_URL 环境变量

在命令行中使用 Supabase 连接字符串设置 NEW_DB_URL 环境变量。您需要将 [YOUR-PASSWORD] 替换为实际的数据库密码。

示例:

1
export NEW_DB_URL="postgresql://postgres.xxxxxxxxxxxxxxxxxxxx:[YOUR-PASSWORD]@aws-0-us-west-1.pooler.supabase.com:5432/postgres"

数据库迁移

您需要安装 pg_dumppsql 命令行工具,这些工具包含在完整的 Postgres 安装包中。

  1. 将数据库导出到控制台文件

    使用 pg_dump 命令配合您的 Postgres 凭据将数据库导出到文件(例如 dump.sql)。

1
2
3
4
5
6
7
pg_dump "$OLD_DB_URL" \ --clean \ --if-exists \ --quote-all-identifiers \ --no-owner \ --no-privileges \ > dump.sql
  1. 将数据库导入到您的 Supabase 项目

    使用 psql 命令将 Postgres 数据库文件导入到您的 Supabase 项目。

    1
    psql -d "$NEW_DB_URL" -f dump.sql

附加选项

  • 若只需迁移单个数据库模式,在 pg_dump 命令中添加 --schema=PATTERN 参数
  • 排除特定模式:--exclude-schema=PATTERN
  • 仅迁移单个表:--table=PATTERN
  • 排除特定表:--exclude-table=PATTERN

运行 pg_dump --help 查看完整选项列表。

企业版

如需获取更多迁移帮助,请联系我们