Schema management with the Terraform-style plan/diff/apply workflow. Write the desired schema in HCL or SQL DDL, and Atlas diffs it against the live database (or a tracked desired-state) and generates a migration plan for review. A versioned-migration mode lets the same tool author and apply migration files.
Schema is special: it has ordering constraints across time, contains user data that must survive transformations, and interacts with running app code on its own deploy cadence. Generic Terraform providers can’t safely manage it because Terraform’s destroy-and-recreate semantics are lethal for tables with rows. Atlas’s contribution is bringing the plan/diff experience to schema without losing the migration history and safety linting features that schema changes need. A column rename should generate ALTER COLUMN RENAME, not DROP + ADD. A table rewrite on a 100M-row table should produce a warning. A destructive change should require an explicit override. None of those checks exist in a Terraform provider.
Two modes. Declarative: write schema.hcl describing tables, columns, indexes; atlas schema apply plans and runs the diff. Versioned: atlas migrate diff generates a versioned migration file from a schema change; you review, edit, commit, and atlas migrate apply runs forward. Migration linting catches destructive changes, backward-incompatible changes, and lock-heavy operations on large tables, integrated into CI against a shadow database. A Terraform provider wires Atlas into a Terraform pipeline if your infra workflow is already Terraform-shaped, without putting the schema directly into Terraform state.
Atlas is the right tool when you want declarative schema and the safety net of generated-but-reviewable migration files. It is not trying to replace Flyway or Liquibase for teams that hand-write every migration. The mental model: Terraform for API objects, Atlas for schema, app migration tool for schema plus reference data tightly coupled to app code (see Infrastructure as Code for the full layering). Trust generated diffs in CI; never auto-apply to production without review. ORM-native migration tools (Alembic, Prisma Migrate, Django, Rails, Ecto) win when the schema lives next to the model definitions in app code; Atlas wins when schema is a first-class artifact owned by infra/platform, decoupled from one app’s framework.