Skip to main content
Replit is upgrading development databases from Neon (a third-party serverless PostgreSQL provider) to Helium, Replit’s own managed PostgreSQL infrastructure. This upgrade is automatic, runs once per app, and preserves all your data.
This upgrade only applies to development databases. Production databases used by your deployed apps are not affected.

What’s changing

The upgrade moves your development database from Neon’s infrastructure to Helium, which runs directly on Replit’s platform. Here’s what that means for you:
  • Lower latency: Your database runs on Replit infrastructure alongside your app, reducing connection times
  • More storage: Your storage limit increases from 10 GB to 20 GB
  • Same database engine: Helium uses PostgreSQL 16, the same version as Neon — your queries, schemas, and data work the same way
  • Seamless connection: Your DATABASE_URL environment variable is automatically updated to point to Helium
  • Neon connection saved: Your previous Neon connection string is saved as NEON_DATABASE_URL in your Secrets for reference, though the Neon database itself is disabled after the upgrade
For a full comparison between the legacy Neon database and the new Replit database — including differences in billing, restore capabilities, connection security, and remixing behavior — see Legacy Development Database.

What to expect during the upgrade

The upgrade runs automatically when you open your Replit App in the Workspace.
  1. A progress screen appears with the message “Upgrading your database”
  2. Your data is securely copied from Neon to Helium. No data is changed or lost during transfer.
  3. The duration depends on your database size — it can take anywhere from a few minutes to a few hours for large databases
  4. You can keep the tab open or close it and come back later
  5. When the upgrade completes, a confirmation dialog appears: “We’ve upgraded your database!”
If the upgrade encounters an issue, it is automatically skipped so you can keep working. The upgrade will retry the next time you open your app.

What to do after the upgrade

For most builders, no action is required. Your app continues to work as before.
If your code connects to the database using the DATABASE_URL environment variable, no changes are needed. The variable is automatically updated to point to your new Helium database.
Review the following if any apply to your app:
  • Hardcoded Neon connection strings: If your code directly references a neon.tech connection string, update it to use the DATABASE_URL environment variable instead — process.env.DATABASE_URL in JavaScript or os.environ['DATABASE_URL'] in Python. See Connect your app to a SQL database for examples.
  • Custom PostgreSQL roles: If you created custom database roles on Neon, those roles and their permissions are migrated automatically. However, role passwords cannot be copied — you will need to reset passwords for any custom roles on the new Helium database.
  • Individual PG environment variables: The PGHOST, PGPORT, PGUSER, and PGPASSWORD environment variables are removed after the upgrade. Use the DATABASE_URL connection string instead, which contains all the information needed to connect.

Troubleshooting

SSL connection errors after the upgrade

After the upgrade, you may see connection errors like The server does not support SSL connections or the socket disconnecting unexpectedly. This happens when your database connection code forces an SSL handshake. Neon required SSL for all connections, but Helium runs locally alongside your app and does not use SSL. To fix this, make the SSL setting in your database connection conditional on the environment. This ensures your app connects without SSL in development (Helium) and with SSL in production (where your production database may still require it).
// Before (breaks after upgrade)
const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
  ssl: { rejectUnauthorized: false },
});

// After (works in both development and production)
const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
  ssl: process.env.NODE_ENV === 'production'
    ? { rejectUnauthorized: false }
    : false,
});
If you use an ORM like Drizzle, Prisma, or Sequelize, check its documentation for how to configure SSL settings conditionally. The same principle applies — disable SSL for the development database and enable it for production.

Frequently asked questions

Yes. Your data is copied from Neon to Helium — it is not moved or deleted during the transfer. The original Neon database is preserved until the upgrade completes successfully. No data is changed or lost.
The upgrade runs automatically when you open your Replit App. If it encounters any issue, it is automatically skipped and you can continue working normally. The upgrade will be retried the next time you open the app.
If the upgrade fails, it is automatically skipped so you can keep using your app with the existing Neon database. The system will retry the upgrade the next time you open your app. If the issue persists across multiple attempts, contact support for assistance.
After the upgrade, DATABASE_URL points to your new Helium database instead of Neon. Your previous Neon connection string is saved as NEON_DATABASE_URL in your app’s Secrets. If your code uses DATABASE_URL to connect, no changes are needed — the variable is updated automatically.
These individual environment variables are removed after the upgrade. Helium provides your connection details through the DATABASE_URL environment variable, which contains all the information your app needs to connect. Update any code that references these individual variables to use DATABASE_URL instead.
Your previous Neon connection string is saved as NEON_DATABASE_URL in your app’s Secrets for reference. However, the Neon database endpoint is disabled after a successful upgrade and the Neon project is permanently removed after a 7-day retention period. You cannot connect to the old Neon database after the upgrade completes.
No. This upgrade only applies to development databases. Production databases used by your deployed apps are managed separately and are not part of this upgrade.

Next steps