It’s fine, Rewind: Revert a migration without losing data

Get the newsletter
Monthly, in your inbox.
The operational relational schema paradigm
An exploration of the current landscape of schema change methodology and what the future should look like.

Feature storytelling with Framer Motion
Learn how we used Framer Motion to create Rewind’s narrative animation.

Consensus algorithms at scale: Part 5 - Handling races
In part 5 of our consensus algorithms series, we discuss how we handle race conditions and forward progress requirements.

Consensus algorithms at scale: Part 4 - Establishment and revocation
In part 4 of the consensus algorithms series, we look at how algorithm leaders are established and revoked.

Generics can make your Go code slower
Go 1.18 is here, and with it, the first release of the long-awaited implementation of Generics is finally ready for production usage. Generics are a frequently requested feature that has been highly contentious throughout the Go community.

Why we chose NanoIDs for PlanetScale's API
Learn why PlanetScale used NanoID to generate obscure and URL friendly identifiers.

Behind the scenes: How we built Rewind
Learn how we used VReplication to allow for migration reverts with data retention.


How to prevent SQL injection attacks in Node.js
Don't let SQL injection attacks hurt your business.

Schema design 101 for relational databases
Whether you're coming from a NoSQL background or have never used a database, we'll walk through the basics of relational database schema design.

Increasing PlanetScale plan limits to include billions of reads
PlanetScale's Scaler plan includes 100 billion reads for $29/month.

Introducing Beam
We're sharing the PlanetScale-powered communication tool we use internally.

Announcing Vitess 13
Learn about the Vitess 13 release.

Misconceptions about databases in the Jamstack
Breaking down the barriers to using relational databases in Jamstack applications.

How we made PlanetScale's background jobs self-healing
How to build self-healing background jobs into your application with background queueing systems, like Sidekiq.

Build a Laravel application with a MySQL database
Learn how to build a Laravel CRUD application, connect it to a MySQL database, and seed it with data.

How to seed a database with Prisma and Next.js
Use Prisma and Next.js to automatically populate your database with data.

Introduction to Laravel caching
Learn how to speed up your Laravel applications with caching.

Using the PlanetScale CLI with GitHub Actions workflows
Learn how to build automated workflows to develop and operate PlanetScale databases with GitHub Actions.

Create a Harry Potter API with Node.js/Express, MySQL, and PlanetScale
Learn how to build a Harry Potter API using Node.js, Express, and PlanetScale

Using entropy for user-friendly strong passwords
When implementing user authentication with passwords, throw out the password rules you know.

How to set up Next.js with Prisma and PlanetScale
A step-by-step guide for using PlanetScale and Prisma with Next.js.

How our Rails test suite runs in 1 minute on Buildkite
Learn how we use minitest and FactoryBot with parallel tests to get our Rails test suite to run in 1 minute on Buildkite.

Deploy your Dusty Domains for good with Netlify
Deploy your forgotten domains in the month of December for a good cause with Netlify and friends.

Arctype integrates MySQL GUI with PlanetScale
The power of PlanetScale within a beautiful GUI — now you can connect to development branches, switch between them, and even create deploy requests in Arctype.

Scaling databases in a serverless world
In a serverless world, traditional databases scale differently. They need a rock solid foundation that Vitess and PlanetScale can provide.

Introducing Prisma’s Data Platform PlanetScale integration
Create a PlanetScale database on the Prisma Data Platform; immediately store and query data from the browser

Bring your data to PlanetScale
PlanetScale now supports zero downtime data migrations from your existing MySQL Database

PlanetScale is now generally available
The PlanetScale serverless database platform is ready for your production workloads.

Building a Next.js app with Netlify, NextAuth.js, Prisma, and a PlanetScale serverless database
A new dynamic Next.js starter app with authentication and PlanetScale built-in, ready to be deployed to Netlify

PlanetScale launch week
Join our contest and stay tuned for exciting announcements and livestreams all this week

Introducing PlanetScale Managed Cloud
Deploy our database platform in your AWS account

New PlanetScale pricing: Scaler plan upgrades and our new enterprise plan
We've updated our database plans to better meet your needs

Using PlanetScale with JetBrains DataGrip
Connect PlanetScale to JetBrains DataGrip to use database branching, deploy requests, and non-blocking schema changes

Comparing AWS’s RDS and PlanetScale
PlanetScale draws customers from RDS due to better scalability and superior developer workflow

Quick deploys using the Web Console
Deploy a TypeScript app using the PlanetScale Vercel integration and Web Console

Optimizing SQL with Query Statistics
Check the performance of your SQL queries in real-time.

NoneSQL, All the DevEx
Databases will win based on superior developer experience, not what is under the hood.

Stay up to date with the PlanetScale Product Changelog
Stay up-to-date with the latest features and product launches from PlanetScale

Automatically copy migration data in PlanetScale branches
Use PlanetScale Branching™ with the database schema migration tools of your choice

Building PlanetScale with PlanetScale
How PlanetScale uses Database Branching™ and non-blocking schema changes to build PlanetScale.

Connect any MySQL client to PlanetScale using Connection Strings
Connect PlanetScale to any MySQL client with Connection Strings for a true serverless database experience.

PlanetScale on Vitess
At PlanetScale, our vision is to build a database developers love that can scale indefinitely. To do this, we knew we needed a database with a history of powering companies that deal with humongous amounts of data and traffic. That’s why we chose Vitess.

Sam Lambert appointed new CEO of PlanetScale
Announcing a new CEO for PlanetScale

The promises and realities of the relational database model
The relational model is one of the oldest surviving models in computer science but it has some drawbacks that need to be addressed.

Integrating PlanetScale with Vercel in a few steps
Together, Vercel and PlanetScale combine a serverless platform with a scalable and easy-to-use database, providing an incredible development experience with limitless scale.

Serverless finally has a database
The dream behind PlanetScale is to serve the modern application developer’s needs as well as something like GitHub does for code.

Non-Blocking Schema Changes
Non-blocking schema changes let you push updates to your database without fear of blocking your databases, locking individual tables, or slowing down production during schema migrations.

Announcing PlanetScale: The database for developers.
PlanetScale is the first database designed for developer workflows, on top of the technology of the hyperscalers.

International Women's Day 2021
To celebrate International Women’s Day we took some time to ask ourselves, the women of PlanetScale, what questions we’d want to answer and then share regarding our careers in tech.

Announcing Vitess 9.0
On behalf of the Vitess maintainers, I am pleased to announce the general availability of Vitess 9.

Announcing Vitess 8.0
On behalf of the Vitess maintainers team, I am pleased to announce the general availability of Vitess 8 for MySQL.

Pitfalls of Isolation Levels in Distributed Databases
The more loosely coupled components are in a distributed system, the better it scale

MySQL semi-sync replication: durability, consistency and split brains
We look at some basics and follow up to present scenarios that require higher level intervention to ensure availability and to avoid split brains from taking place.

Consensus algorithms at scale: Part 3 - Use cases
Consensus Use Cases

Orchestrator failure detection and recovery: New Beginnings
how the new integration adds new failure detection and recovery scenarios, making orchestrator’s operation goal-oriented.

Consensus algorithms at scale: Part 2 - Rules of consensus
The Rules of Consensus

On joining PlanetScale and the vision of open source database infrastructure
Why I joined PlanetScale to work on Vitess and PlanetScaleDB, and what I perceive Vitess can become in the MySQL open source ecosystem.

Consensus algorithms at scale: Part 1 - Introduction
This is a multi-part blog series and will be updated with links to the corresponding posts.

Announcing Vitess 7
On behalf of the Vitess maintainers team, I am pleased to announce the general availability of Vitess 7. Major Themes Improved SQL Support We continued to progress towards (almost) full MySQL compatibility.

Debunking 3 myths about Vitess fault tolerance
Here at PlanetScale we hear some concerns about the reliability of Vitess and its capabilities with regards to data loss.

Announcing Vitess 6
I am excited to announce the general availability of Vitess 6, the second release to follow our new accelerated release schedule.

ACID Transactions are not just for banks - the Vitess approach
Build systems that do not lose data. Vitess prevents asynchronous failure in two ways: (1) ensuring that the changes are saved locally on storage, with the redo log and binary logs safely written to disk and (2) making use of semi-synchronous replication.

Videos: Intro to Vitess—its powerful capabilities and how to get started
This video playlist featuring Vitess co-creator, Sugu Sougoumarane, is an excellent resource to learn more about the features and capabilities of open source Vitess.

PlanetScale migrates open source Vitess test suite from Python to Go
It's easier than ever to contribute to Vitess. The test suite migration from Python to golang makes Vitess more developer friendly.
