> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# 从 Railway 迁移到 Square Cloud

> 将 Railway 项目迁移到 Square Cloud 的实用指南：配置映射、部署步骤，以及需要提前规划的主要差异。

## 开发者为什么迁移

Railway 按计量用量计费（每秒消耗的 CPU、RAM 和网络流量），因此每月账单会随流量波动，难以预估。Square Cloud 采用了不同的方式：

* **BRL 计价的可预测固定价格** —— 一个套餐价格涵盖 RAM、vCPU 和 Blob 存储，与应用处理的流量无关。参见[套餐与价格](/zh/platform/plans)。
* **专属资源** —— RAM 和 vCPU 都为你的应用预留，而不是尽力而为的共享容量。
* **秒级部署** —— 上传一个 zip 文件或通过 CLI 推送，应用即可运行。

## 概念对照

| Railway                   | Square Cloud                                                                                         |
| ------------------------- | ---------------------------------------------------------------------------------------------------- |
| `railway.json` / Nixpacks | [`squarecloud.app` 配置文件](/zh/getting-started/config-file) + 自动 [Runtimes](/zh/runtimes/introduction) |
| 按用量计费                     | 固定月度[套餐定价](/zh/platform/plans)                                                                       |
| Postgres/Redis 插件         | [Square Cloud 托管数据库](/zh/services/databases)（PostgreSQL、MySQL、MongoDB、Redis）                         |
| 环境变量                      | 环境变量，可在控制面板中设置，或通过 `.env` 文件上传                                                                       |
| `railway up`              | `squarecloud upload`                                                                                 |
| 自定义域名                     | [Standard 套餐或更高级别](/zh/platform/plans)上的自定义域名                                                        |

## 迁移步骤

<Steps>
  <Step title="创建你的配置文件">
    将 `railway.json`/Nixpacks 检测替换为项目根目录下的 `squarecloud.app` 文件：

    ```systemd squarecloud.app theme={null}
    MAIN=index.js
    MEMORY=512
    VERSION=recommended
    DISPLAY_NAME=My migrated app
    SUBDOMAIN=my-app
    ```

    Square Cloud 的 [Runtimes](/zh/runtimes/introduction) 会根据 `package.json` 或 `requirements.txt` 等文件自动检测你的语言，这与 Nixpacks 依赖的信号相同。查看[配置文件参考](/zh/getting-started/config-file)了解每个字段的详情。
  </Step>

  <Step title="设置你的环境变量">
    从 Railway 项目的 Variables 标签页重新创建这些变量，可以从控制面板的环境变量面板设置，也可以上传 `.env` 文件：

    ```bash theme={null}
    squarecloud app env set --from-file .env --app <appID>
    ```
  </Step>

  <Step title="部署">
    通过 CLI 或控制面板上传你的项目，以替代 `railway up`：

    ```bash theme={null}
    squarecloud upload
    ```

    参见[如何托管你的网站/API](/zh/tutorials/how-to-deploy-your-website)，了解这两种方式的完整演示。
  </Step>

  <Step title="将插件迁移到托管数据库">
    如果你的项目使用了 Railway 的 Postgres、MySQL 或 Redis 插件，请配置等价的 [Square Cloud 托管数据库](/zh/services/databases)，并将应用的连接字符串指向它。
  </Step>

  <Step title="配置你的 DNS">
    应用在 `<subdomain>.squareweb.app` 上线后，将你域名的 DNS 指向 Square Cloud，并通过 CLI 绑定：

    ```bash theme={null}
    squarecloud app network domain example.com --app <appID>
    ```

    自定义域名需要有效的 Standard 套餐或更高级别。
  </Step>
</Steps>

## 需要提前规划的主要差异

* **计费模式。** 没有按秒计量的用量表需要留意 —— 无论流量如何，成本都按套餐固定。请根据 RAM/vCPU 需求而非预计用量来选择套餐规模。参见[套餐与价格](/zh/platform/plans)。
* **地区与延迟。** Square Cloud 的数据中心位于纽约 —— 参见[平台概览](/zh/platform/overview)了解基础设施详情。如果你之前运行在不同的 Railway 地区，请在切换前先根据用户所在地测量延迟。
* **数据库需单独迁移。** 迁移 Railway 的 Postgres/Redis 插件数据意味着需要先导出它，再恢复到一个新的 [Square Cloud 托管数据库](/zh/services/databases)中 —— 请为切换规划一个维护窗口。

## 联系我们

如果你仍然遇到**技术问题**，我们的**专业支持团队**可以为你提供帮助。[**联系我们**](https://squarecloud.app/zh/support)，我们很乐意协助你解决任何问题 —— 支持质量正是开发者给予 Square Cloud [**4.9/5 评分（共 402 条评价）**](https://www.trustpilot.com/review/squarecloud.app)（Google 与 Trustpilot）的重要原因之一。
