Step-by-step Atlas walkthroughs
Database-specific Atlas guides
Wire Atlas into your pipeline
Integrate Atlas with any ORM
Roles, permissions, and policies as code
Lookup tables and reference data
Run via the Atlas Operator
Manage schemas via Terraform
End-to-end control and compliance
Block drift before and after deploys
Safe schema changes at machine speed
Apply modern CI/CD to schema changes
One migration tool to rule them all
Manage thousands of databases as one

Declarative database schema management — define your desired state, Atlas computes the plan
Flyway and Liquibase require you to write every migration by hand.
Atlas is declarative: define your desired state, and it computes the plan. Deterministic, reliable, and built for the AI era.
Define your schema in any language or ORM, and compose them like Terraform modules. Atlas plans, lints, and deploys safe migrations. Declarative or versioned, your choice.
Define roles, users, and permissions as code. Atlas automatically diffs, plans, and applies changes to bring any database in line with the desired state.
Seed lookup tables, compare desired vs. live state, and insert reference data. Atlas generates the exact DML needed, with three sync modes for precise control.
Backfills, GDPR deletion, and reports, declared as code. Agents write the operation, and tests verify it in CI along two axes: the result it produces, and the privileges it runs with.
Atlas analyzes every migration for destructive changes, table locks, data loss risks, and concurrent index violations. In CI, on the CLI, or pre-deployment.
terraform {
required_providers {
atlas = {
source = "ariga/atlas"
version = "~> 0.9.7"
}
}
}
provider "atlas" {
dev_url = "docker://postgres/15/myapp"
}
data "atlas_schema" "sql" {
src = "file://${path.module}/schema.sql"
}
resource "atlas_schema" "postgres" {
url = "postgres://root:pass@localhost:5432/app?sslmode=disable"
hcl = data.atlas_schema.sql.hcl
}
$ terraform apply
data.atlas_schema.sql: Reading...
data.atlas_schema.sql: Read complete after 2s [id=p93KLX2q4UI326LN/4cssQ]
Terraform will perform the following actions:
# atlas_schema.postgres will be created
+ resource "atlas_schema" "postgres" {
+ hcl = <<-EOT
table "users" {
schema = schema.myapp
column "id" {
null = false
type = int
}
column "name" {
null = false
type = varchar(255)
}
primary_key {
columns = [column.id]
}
}
EOT
+ id = (known after apply)
+ url = (sensitive value)
}
Plan: 1 to add, 0 to change, 0 to destroy.
The following SQL statements will be executed:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
Schema registry, deployment logs, audit trails, and production safeguards. Everything your team needs to operate databases at scale.





A versioned registry for migration directories, ERDs, and schema docs.
Atlas monitors live databases for schema drift, permission mismatches, and policy violations. When drift is detected, it generates the exact SQL to bring them back in line.
RLS disabled on accounts, all rows visible
Column-level lineage across tables, views, and datasets, for developers and agents. Select a column to see where its data comes from, which expressions shape it, and what depends on it downstream. The same graph prints from the CLI as compact JSON for agents, or as OpenLineage for catalogs.
Click a column to highlight its lineage path. Click an f marker to pin its expression.
Every role, grant, and object in a repository on one graph, colored by its worst analyzer finding, from CVEs to privilege escalation. Select an object to trace its blast radius, or print the graph as JSON from the CLI for a CI gate or an agent's context.
Click an object to trace its blast radius. Click a tier to highlight every object at that severity.
GitOps-native CI/CD for secure and compliant database management