cloudparts

Atlas

A schema-as-code tool, “Terraform for databases”: you describe the schema you want in SQL, HCL or ORM models, and Atlas plans, lints, tests and applies the migrations to get there.

Type
Commercial product
Made by
Ariga Technologies
License
Open core: Community Edition is Apache 2.0; the standard binary adds proprietary features under the Atlas MSA, some of them paid (Atlas Pro)
Facts checked
23 October 2026

What it is

Atlas manages a database schema the way Terraform manages infrastructure. You write the desired schema as SQL, as Atlas HCL, or let Atlas read it from your ORM: it has loaders for 16 ORMs in six languages, including GORM and Ent in Go, Prisma, Drizzle and TypeORM in TypeScript, Django and SQLAlchemy in Python, Hibernate, EF Core and Doctrine. Atlas then inspects the target database, computes the difference, and plans the DDL. To understand the schema exactly as the database would, it applies it to a throwaway “dev database”, often a container started from a URL such as docker://postgres/16/dev.

It supports two workflows. In the declarative one, atlas schema apply moves a database straight to the desired state, like terraform apply. In the versioned one, atlas migrate diff writes the next migration file into a folder, and atlas migrate apply runs the files not yet applied. Either way, more than 50 analyzers lint the plan for dropped tables or columns, changes that fail on existing data such as a NOT NULL column without a default, and locks or table rewrites that would block a busy table. It also tests functions, views and triggers from .test.hcl files, and manages roles, permissions and row-level security policies as code.

Atlas is written in Go. It supports PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, ClickHouse, Redshift, Oracle, Snowflake, CockroachDB, TiDB, Databricks, Spanner, Aurora DSQL and Azure Fabric, and runs from the CLI, GitHub Actions and other CI systems, a Kubernetes operator, a Terraform provider or a Go SDK. The free Starter tier covers MySQL, MariaDB, PostgreSQL and SQLite with basic features; Pro starts at $9 per developer a month, plus $59 a month per CI/CD project and $39 per monitored database, and adds all databases, linting in CI, drift detection, schema monitoring and audit trails in Atlas Cloud. The latest release is 1.3.0 (August 2, 2026).

Why teams pick it

  • Plans migrations for you from the desired schema, in either a declarative or a versioned workflow
  • Migration linting that knows each database: destructive changes, data-dependent changes, locks and rewrites
  • Reads schemas from many ORMs, so teams keep using their models as the source of truth
  • Fits infrastructure pipelines: Terraform provider, Kubernetes operator, CI actions and IAM authentication to RDS and Cloud SQL

Watch out for

  • Open core: the Apache 2.0 Community Edition lacks linting, testing, views, triggers, functions and drivers such as SQL Server, ClickHouse and Oracle, which are in the free-to-download but proprietary standard binary
  • Many features need atlas login and a paid Pro plan, priced per developer, per pipeline and per monitored database
  • Planning needs a dev database of the same engine, usually a Docker container, available wherever Atlas runs
  • An automatically planned migration still needs review: a rename can look like a drop and an add, and lint catches only what its analyzers know

Alternatives

What all database clients and design tools have in common →Compare side by side →

How it fits with other technologies

Declarative and versioned workflows · bash

# see what the database looks like now
atlas schema inspect -u "postgres://localhost:5432/mydb"

# declarative: move the database straight to schema.hcl
atlas schema apply \
  --url "postgres://localhost:5432/mydb" \
  --to file://schema.hcl \
  --dev-url "docker://postgres/16/dev"

# versioned: write the next migration file, lint it, apply it
atlas migrate diff add_discount --to file://schema.sql --dev-url "docker://postgres/16/dev"
atlas migrate lint --dev-url "docker://postgres/16/dev"
atlas migrate apply --url "postgres://localhost:5432/mydb"

See it in a real stack

No architecture uses Atlas yet. Drop it into the playground and wire it up yourself.Open playground →
Where it came from2019–2026

Ariel Mashraki joined Facebook’s Connectivity team in Tel Aviv in 2018 and wrote Ent, a graph-based ORM for Go, which Facebook open-sourced in October 2019 and which later moved to the Linux Foundation. The creators of Ent went on to found Ariga, with Mashraki as CEO and Rotem Tamir as co-founder, to build database tooling. On November 25, 2021 Ariga open-sourced the Atlas CLI, describing schemas in HCL, “similar to Terraform”, and arguing that managing database schemas needed the kind of machine-readable definitions that Chef, Puppet and Terraform had brought to infrastructure.

On June 1, 2023 Ariga announced it had raised $18 million from Tiger Global and TLV Partners. Atlas grew from a declarative tool into one that also plans versioned migration files, reads ORM models, lints, tests and monitors schemas, and added commercial databases such as Oracle, Snowflake and Databricks. The project follows an open-core model: the Apache 2.0 Community Edition is built from the public repository, while the standard binary adds proprietary features. Atlas 1.0 came out on December 23, 2025, which its team said reflected a tool that had been production-ready for years.

Why it’s built this way

Desired state instead of hand-written steps
Writing migration files by hand is slow and error-prone. Describing the target and letting the tool compute the difference is how Terraform made infrastructure changes reviewable, and Ariga applied the same idea to schemas.
Normalize through a real dev database
Databases store a schema in a canonical form that differs from how people write it, and parsing alone can’t tell whether every expression is valid. Running the desired schema through a scratch instance of the same engine validates it and lets Atlas compare normalized forms, so it doesn’t propose needless changes.
Lint every migration before it runs
A migration that drops a column or locks a large table can take an application down. Static checks in CI catch those changes during code review, the way a linter does for code.
Open core
The core engine stays Apache 2.0 so anyone can use and embed it, while features for teams, more databases and the cloud service pay for development.

Timeline

  1. 2019

    Ariel Mashraki’s Ent ORM open-sourced by Facebook (October 3)

  2. 2021

    Ariga open-sources the Atlas CLI; version 0.1.0 (November 25)

  3. 2023

    Ariga announces $18 million from Tiger Global and TLV Partners (June 1)

  4. 2025

    Atlas 1.0 (December 23)

  5. 2026

    Atlas 1.1 adds database security as code (February 3); 1.2 (April 9); 1.3 (July 30)

Sources7 · facts checked 23 October 2026

Improve this page on GitHub