> Full SurrealDB documentation index: https://surrealdb.com/docs/llms.txt

# Beta

Install or upgrade to a SurrealDB beta release, such as the 4.0 beta, with the install script, surreal upgrade --beta, or a versioned Docker tag.

SurrealDB 4.0 is in beta. A beta is a release of the next version that is published before the stable release, so that you can test an application and a datastore against it. The install script and `surreal upgrade` stay on the current stable release unless you ask for the beta, and the Docker `latest` tag points to the stable release too.

> [!WARNING]
> Starting a 4.0 node on a `3.x` datastore converts the datastore to the 4.0 record format, and a `3.x` release cannot open it afterwards. Test the beta on a new datastore or on a copy, and read [Upgrading from 3.x to 4.0](/docs/build/migrating/from-old-surrealdb-versions/3x-to-4x.md) before you start it on existing data.

## Installing the beta on macOS and Linux

The install script installs `surreal` and the latest beta database, and pins it as the default.

```bash
curl --proto '=https' --tlsv1.2 -sSf https://install.surrealdb.com | sh -s -- --beta
```

## Installing the beta on Windows

```powershell
& ([scriptblock]::Create((irm https://windows.surrealdb.com))) -Beta
```

## Upgrading an installed database to the beta

With `surreal` already installed, upgrade the database component to the latest beta. The `--beta` flag is shorthand for `db@beta`.

```bash
surreal upgrade --beta
```

```bash
surreal upgrade db@beta
```

To run one command against the beta without changing the default, use `+beta`, as in `surreal +beta db start`. See [Managing components](/docs/explore/cli/components.md#run-another-version-once).

## Using the beta with Docker

Docker Hub has no tag that follows the latest beta, so name the beta release in the tag. The tags are listed on [Docker Hub](https://hub.docker.com/r/surrealdb/surrealdb/tags).

```bash
docker run --rm --pull always -p 8000:8000 surrealdb/surrealdb:v4.0.0-beta.1 start
```
