Back to Blog
Migration 11 min read

TL;DR - PlanetScale removed their free Hobby plan in April 2024, pushing thousands of developers to self-managed MySQL on providers like DigitalOcean, Hetzner, Railway, and AWS. - Migrating the data was the easy part. What most developers lost: the web console for browsing data, running queries, viewing schemas, and exporting tables. - Self-managed MySQL gives you a mysql CLI and nothing else. Getting a GUI back means installing phpMyAdmin, Adminer, or a desktop client — each with its own setup friction. - DBEverywhere gives you phpMyAdmin and Adminer in a browser with zero installation. Static IP for firewall whitelisting. Free tier: 5 sessions/month. - If you migrated from PlanetScale, the database is the hard part done. Getting a usable interface back takes 30 seconds.

Table of Contents

Left PlanetScale? Here's How to Manage Your New MySQL Database

In March 2024, PlanetScale announced they were removing their free Hobby plan effective April 25, 2024. The new minimum was $39/month per database — a jump from $0 to $39 with no intermediate tier. Within weeks, thousands of developers began migrating their databases to other providers. If you left PlanetScale for self-managed MySQL, you already handled the hardest part: moving your data. But you probably noticed something missing on the other side.

PlanetScale wasn't just a database host. It was a database host with an excellent web console — a browser-based interface for browsing tables, running queries, viewing schema, and managing data. When you migrated to DigitalOcean, Hetzner, Railway, or a bare VPS, that console disappeared. You got a MySQL connection string and a terminal. This article covers how to fill that gap.

What Happened with PlanetScale

PlanetScale launched in 2021 as a serverless MySQL platform built on Vitess (the same technology YouTube uses for its database layer). The free Hobby plan was generous: 5GB storage, 1 billion row reads per month, 10 million row writes per month. For side projects, portfolios, and early-stage apps, it was the obvious choice.

The numbers tell the story of the migration wave:

  • PlanetScale had an estimated 150,000+ free-tier databases before the announcement, based on their public growth metrics.
  • The Hacker News thread about the announcement received over 700 comments, most discussing migration destinations.
  • DigitalOcean reported a spike in Managed MySQL provisioning in April-May 2024, coinciding with PlanetScale's deadline.
  • Railway's Discord saw hundreds of posts from users migrating from PlanetScale in a single week.
  • Google Trends shows a 4x spike in searches for "PlanetScale alternative" between March and May 2024.

The migration itself was straightforward for most users. PlanetScale supported mysqldump-compatible exports, and the data was standard MySQL. mysqldump your PlanetScale database, mysql < dump.sql into your new provider, update the connection string in your app. Done.

What You Lost Besides Free Hosting

PlanetScale's web console was more than a database viewer. It included:

  • Inline query editor: write and execute SQL directly in the browser with syntax highlighting, auto-completion, and result formatting.
  • Schema browser: visual table structure with columns, types, indexes, and foreign keys. Click a table, see its shape.
  • Data browser: paginated table data with filtering. No SQL required for basic data inspection.
  • Schema diff and branching: create a branch, modify the schema, see a diff, merge it. This was PlanetScale's signature feature.
  • Query insights: slow query log with execution times, rows scanned, and index usage.
  • Import/export: browser-based data import from CSV and SQL files.

Of these, schema branching and query insights were PlanetScale-specific features tied to Vitess. You can't replicate them with a generic tool. But the first four — query editor, schema browser, data browser, and import/export — are exactly what phpMyAdmin and Adminer provide. They're table-stakes database management features that every developer needs.

The irony: PlanetScale made these features feel native. When you self-host MySQL, they require a separate tool.

Where PlanetScale Refugees Went

Based on community discussions across Hacker News, Reddit (r/selfhosted, r/webdev), and Twitter/X, the most common migration destinations were:

DigitalOcean Managed Databases ($15/mo for the smallest MySQL instance): provider-managed backups, automated failover, trusted sources for IP whitelisting. No web console for data management.

Hetzner Cloud ($3.49/mo for a VPS + self-installed MySQL, or managed database starting at ~$10/mo): cheapest option for developers comfortable with server management. No web console.

Railway ($5/mo base + usage): closest to PlanetScale's developer experience. Has a basic data browser in its dashboard, but it's minimal compared to PlanetScale's console.

AWS RDS ($15-30/mo for a db.t3.micro): enterprise-grade but no GUI. AWS provides the RDS Query Editor for Aurora Serverless only, not standard RDS MySQL.

Self-hosted on a VPS (Linode, Vultr, OVH — $5-12/mo): full control, lowest cost, but you manage everything: installation, backups, security, updates, and access.

The common thread: none of these providers include a database GUI. You get a MySQL connection string. What you do with it is your problem.

The Management Gap on Self-Managed MySQL

When your MySQL database is on PlanetScale, you manage it through PlanetScale's console. When your MySQL database is on DigitalOcean or Hetzner, you manage it through... nothing. You have three options:

  1. The mysql CLI: powerful, scriptable, but not visual. Browsing a table with 50 columns means horizontal scrolling in a terminal. Exporting data means writing a SELECT ... INTO OUTFILE statement or piping mysqldump output. For developers who live in the terminal, this works. For everyone else, it's a regression from what PlanetScale offered.

  2. A desktop client (MySQL Workbench, DBeaver, TablePlus, DataGrip): feature-rich, but requires installation on every machine. Doesn't work from a tablet, a shared machine, or a restricted corporate laptop. Requires your database to be accessible from your current IP — which changes every time you move to a different network.

  3. A web-based tool (phpMyAdmin, Adminer, CloudBeaver): browser-based, no installation, works from any device. But you need to host it yourself — another server, another Docker container, another thing to maintain and secure.

The gap is clear: self-managed MySQL gives you the database but not the interface. PlanetScale bundled both. After migration, you need to unbundle them and find the interface separately.

Option 1: Install phpMyAdmin or Adminer Yourself

The traditional answer. Install phpMyAdmin on the same server as your database (or a separate server), configure it, secure it, and access it via a browser.

phpMyAdmin is the most well-known MySQL web GUI, with over 200,000 downloads per month. It supports table browsing, inline editing, SQL queries, import/export, user management, and server monitoring. It requires PHP 8.1+ and a web server (Apache or Nginx).

Adminer is a lighter alternative — a single PHP file that supports MySQL, PostgreSQL, SQLite, and more. Fewer features than phpMyAdmin, but dramatically simpler to install.

The setup for either tool involves:

  • Installing PHP and a web server (or using Docker)
  • Configuring HTTPS (reverse proxy with Let's Encrypt)
  • Setting upload limits for imports larger than 2MB
  • Restricting access by IP or adding authentication
  • Keeping the software updated for security patches

This works, but it's a 30-90 minute project that creates an ongoing maintenance burden. If you left PlanetScale because you didn't want to pay $39/month for a database, spending hours setting up a database GUI is a poor trade.

Option 2: Use a Desktop Client

Desktop database clients are mature, full-featured, and work without hosting anything. The main options for MySQL:

MySQL Workbench (free): Oracle's official GUI. Powerful but heavy — 300MB+ download, slow to start, dated UI. Supports visual schema design, query profiling, and server administration.

DBeaver Community (free): open-source, supports 80+ databases, active development. Java-based, so it uses 400-600MB of RAM. Good for multi-database environments.

TablePlus ($89 one-time): fast, clean macOS/Windows/Linux client. Excellent UX, but the free version limits you to 2 open tabs and 2 filters.

DataGrip ($99/year): JetBrains' database IDE. The most feature-rich option. Heavy, expensive, but includes refactoring, version control integration, and smart completion.

Desktop clients solve the GUI problem, but they don't solve the access problem. Your database is behind a firewall with IP whitelisting. You need to either:

  • Whitelist your current IP (changes on every network)
  • Use a VPN to get a static IP
  • Set up an SSH tunnel to a bastion host

If you're a solo developer on one machine, this friction is manageable. If you're a team of 5+ people working from different locations, every IP change generates a firewall update request.

Option 3: Browser-Based Database GUI as a Service

This is the approach that most closely replaces what PlanetScale's console provided: a web interface for your database that you access from a browser, without hosting anything yourself.

DBEverywhere runs phpMyAdmin and Adminer as hosted services. You open the browser, enter your MySQL connection details (host, port, username, password), and you're in. The connection happens from DBEverywhere's static IP, which you whitelist once in your database firewall.

What this gives you:

  • Table browsing: click a table, see its data. Paginated, sortable, filterable. The same experience as PlanetScale's data browser.
  • Query editor: write and run SQL in the browser with syntax highlighting. View results inline.
  • Schema viewer: see table structures, columns, types, indexes, and foreign keys.
  • Import/export: upload SQL or CSV files, export tables or entire databases.
  • No installation: works from any browser on any device. No PHP, no Docker, no server.
  • Static IP: one firewall rule. Your database provider doesn't care where you are — only that the connection comes from a known IP.

What this doesn't replace:

  • Schema branching: PlanetScale's branching was built on Vitess. No generic tool replicates it.
  • Query insights: PlanetScale tracked slow queries and index usage at the platform level. For self-managed MySQL, you'd need a monitoring tool like Percona Monitoring and Management or MySQL's built-in performance_schema.
  • Automatic failover: PlanetScale handled replication and failover. On self-managed MySQL, this is a separate concern (managed databases from DigitalOcean and AWS handle it for you).

For the core use case — "I need to look at my data, run some queries, and export a table" — a hosted GUI service covers 80% of what PlanetScale's console offered, at $0-5/month instead of $39/month.

Comparison Table: PlanetScale Console vs. Alternatives

Feature PlanetScale Console mysql CLI Desktop Client (DBeaver) Self-Hosted phpMyAdmin DBEverywhere
Data browser Yes No (text output) Yes Yes Yes
Query editor Yes (with insights) Yes (no UI) Yes (with autocomplete) Yes Yes
Schema viewer Yes (with branching) Yes (DESCRIBE) Yes (visual) Yes Yes
Import/export Yes Yes (CLI tools) Yes Yes (2MB default limit) Yes
Browser-based Yes No No Yes Yes
Installation required No No (built-in) Yes (300-600MB) Yes (PHP + web server) No
Works from any device Yes No No Yes (if hosted) Yes
IP whitelisting N/A (PlanetScale handles) Your IP must be whitelisted Your IP must be whitelisted Server IP whitelisted Static IP whitelisted
Maintenance None (PlanetScale's job) None App updates Security patches, PHP updates None
Cost Was $0, now $39/mo (includes DB) Free Free to $99/year Free (your time + server) Free (5 sessions/mo) or $5/mo
Schema branching Yes No No No No
Query insights Yes No Limited No No

FAQ

Can I replicate PlanetScale's schema branching on self-managed MySQL?

Not easily. PlanetScale's branching was built on Vitess's online DDL capabilities and their custom schema management layer. The closest approximation is using a migration tool like golang-migrate, Flyway, or Prisma Migrate for version-controlled schema changes. These provide migration tracking and rollback, but not the visual branch-and-diff workflow PlanetScale offered.

Is $5/month for a database GUI worth it when I just saved $39/month by leaving PlanetScale?

The $39/month included the database itself — compute, storage, replication, and the console. Your new database host costs $5-15/month for the infrastructure. Adding $5/month for a GUI still puts you at $10-20/month total, roughly half of what PlanetScale charged. You save money and get a GUI. The alternative is spending 2-4 hours setting up and maintaining self-hosted phpMyAdmin, which costs more in time.

Does DBEverywhere support PlanetScale's connection protocol?

PlanetScale used standard MySQL wire protocol, so any MySQL client works. If you're still on PlanetScale (paid plan), DBEverywhere can connect to it the same way it connects to any MySQL host. If you've migrated away, DBEverywhere connects to your new provider — DigitalOcean, Hetzner, AWS RDS, Railway, or wherever your database lives now.

What about databases other than MySQL?

If you migrated from PlanetScale to PostgreSQL (some developers used the migration as an opportunity to switch engines), DBEverywhere serves Adminer for PostgreSQL connections. Adminer supports PostgreSQL, MySQL, SQLite, Microsoft SQL Server, and Oracle — all through the same browser interface.

How do I whitelist DBEverywhere's IP on DigitalOcean Managed Databases?

In the DigitalOcean dashboard, go to your database cluster, click "Settings," find "Trusted Sources," and add DBEverywhere's static IP. The entire process takes under 60 seconds. Detailed instructions are in our DigitalOcean MySQL guide.

Conclusion

Leaving PlanetScale was the right financial decision for most developers using the free tier. Paying $39/month for a side project database is hard to justify. The migration — mysqldump out, mysql in, update the connection string — was the straightforward part.

The less obvious loss was the web console. PlanetScale bundled a polished browser-based database GUI that most developers used daily: browsing tables, running queries, checking schemas, exporting data. On self-managed MySQL, that interface vanishes. You're left with the CLI, a desktop client you need to install and configure, or a self-hosted phpMyAdmin instance you need to maintain.

A phpMyAdmin as a service tool like DBEverywhere fills this gap directly. Open a browser, enter your connection details, manage your database — the same workflow PlanetScale provided, minus the proprietary features (branching, insights). The static IP means one firewall rule on your new provider, and no infrastructure on your end.

Free tier: 5 sessions per month, 20-minute timeout. Paid: $5/month for unlimited sessions, saved connections with encrypted storage, and SSH tunnel support for databases behind private networks.

You already did the hard part — you moved your data. Now get your GUI back. Try DBEverywhere free.

Try DBEverywhere Free

Access your database from any browser. No installation, no Docker, no SSH tunnels.

Get Started