[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71438":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},71438,"atlas","ariga\u002Fatlas","ariga","Declarative schema migrations with schema-as-code workflows","https:\u002F\u002Fatlasgo.io",null,"Go",8471,359,28,230,0,13,34,103,39,38.67,"Apache License 2.0",false,"master",true,[],"2026-06-12 02:02:52","# Atlas - Manage Your Database Schema as Code\n\n[![Twitter](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl.svg?label=Follow%20%40atlasgo_io&style=social&url=https%3A%2F%2Ftwitter.com%2Fatlasgo_io)](https:\u002F\u002Ftwitter.com\u002Fatlasgo_io)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F930720389120794674?label=discord&logo=discord&style=flat-square&logoColor=white)](https:\u002F\u002Fdiscord.com\u002Finvite\u002FzZ6sWVg6NT)\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fatlasgo.io\" target=\"_blank\">\n    \u003Cimg alt=\"Atlas banner\" src=\"https:\u002F\u002Fgithub.com\u002Fariga\u002Fatlas\u002Fassets\u002F7413593\u002F2e27cb81-bad6-491a-8d9c-20920995a186\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\nAtlas is a language-agnostic tool for managing and migrating database schemas using modern DevOps principles.\nIt offers two workflows:\n\n- **Declarative**: Similar to Terraform, Atlas compares the current state of the database to the desired state, as\n  defined in an [HCL], [SQL], or [ORM] schema. Based on this comparison, it generates and executes a migration plan to\n  transition the database to its desired state.\n\n- **Versioned**: Unlike other tools, Atlas automatically plans schema migrations for you. Users can describe their desired\n  database schema in [HCL], [SQL], or their chosen [ORM], and by utilizing Atlas, they can plan, lint, and apply the\n  necessary migrations to the database.\n\n\n## Supported Databases\n\n[PostgreSQL](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fpostgres) ·\n[MySQL](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fmysql) ·\n[MariaDB](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fmysql) ·\n[SQL Server](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fmssql) ·\n[SQLite](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fsqlite) ·\n[ClickHouse](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fclickhouse) ·\n[Redshift](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fredshift) ·\n[Oracle](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Foracle) ·\n[Snowflake](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fsnowflake) ·\n[CockroachDB](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fcockroachdb) ·\n[TiDB](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fmysql) ·\n[Databricks](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdatabricks) ·\n[Spanner](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fspanner) ·\n[Aurora DSQL](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdsql) ·\n[Azure Fabric](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fazure-fabric)\n\n## Installation\n\n**macOS + Linux:**\n\n```bash\ncurl -sSf https:\u002F\u002Fatlasgo.sh | sh\n```\n\n**Homebrew:**\n\n```bash\nbrew install ariga\u002Ftap\u002Fatlas\n```\n\n**Docker:**\n\n```bash\ndocker pull arigaio\u002Fatlas\n```\n\n**NPM:**\n\n```bash\nnpx @ariga\u002Fatlas\n```\n\nSee [installation docs](https:\u002F\u002Fatlasgo.io\u002Fgetting-started#installation) for all platforms.\n\n## Key Features\n\n- **[Declarative schema migrations](https:\u002F\u002Fatlasgo.io\u002Fdeclarative\u002Fapply)**: The `atlas schema` command offers various options for [inspecting](https:\u002F\u002Fatlasgo.io\u002Finspect), diffing, comparing, [planning](https:\u002F\u002Fatlasgo.io\u002Fdeclarative\u002Fplan) and applying migrations using standard Terraform-like workflows.\n- **[Versioned migrations](https:\u002F\u002Fatlasgo.io\u002Fversioned\u002Fintro)**: The `atlas migrate` command provides a state-of-the-art experience for [planning](https:\u002F\u002Fatlasgo.io\u002Fversioned\u002Fdiff), [linting](https:\u002F\u002Fatlasgo.io\u002Flint\u002Fanalyzers), and [applying](https:\u002F\u002Fatlasgo.io\u002Fversioned\u002Fapply) migrations.\n- **[Schema as Code](https:\u002F\u002Fatlasgo.io\u002Fatlas-schema)**: Define your desired database schema using [SQL], [HCL], or your chosen [ORM]. Atlas supports [16 ORM loaders](https:\u002F\u002Fatlasgo.io\u002Forms) across 6 languages.\n- **[Security-as-Code](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fpostgres\u002Fsecurity-declarative)**: Manage roles, permissions, and [row-level security](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fpostgres\u002Frow-level-security) policies as version-controlled code.\n- **[Data management](https:\u002F\u002Fatlasgo.io\u002Fatlas-schema\u002Fsql)**: Manage seed and lookup data declaratively alongside your schema.\n- **[Cloud-native CI\u002FCD](https:\u002F\u002Fatlasgo.io\u002Fintegrations)**: [Kubernetes operator](https:\u002F\u002Fatlasgo.io\u002Fintegrations\u002Fkubernetes), [Terraform provider](https:\u002F\u002Fatlasgo.io\u002Fintegrations\u002Fterraform), [GitHub Actions](https:\u002F\u002Fatlasgo.io\u002Fintegrations\u002Fgithub-actions), [GitLab CI](https:\u002F\u002Fatlasgo.io\u002Fintegrations\u002Fgitlab), [ArgoCD](https:\u002F\u002Fatlasgo.io\u002Fintegrations\u002Fkubernetes\u002Fargocd), and more.\n- **[Testing framework](https:\u002F\u002Fatlasgo.io\u002Ftesting\u002Fschema)**: Unit test schema logic (functions, views, triggers, procedures) and [migration behavior](https:\u002F\u002Fatlasgo.io\u002Ftesting\u002Fmigrate).\n- **[50+ safety analyzers](https:\u002F\u002Fatlasgo.io\u002Flint\u002Fanalyzers)**: Database-aware migration linting that detects destructive changes, data-dependent modifications, table locks, backward-incompatible changes, and more.\n- **[Multi-tenancy](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fmulti-tenancy)**: Built-in support for multi-tenant database migrations.\n- **[Drift detection](https:\u002F\u002Fatlasgo.io\u002Fmonitoring)**: Monitoring as Code with automatic schema drift detection and remediation.\n- **[Cloud integration](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdeploying\u002Fsecrets)**: IAM-based authentication for [AWS RDS](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdeploying\u002Fsecrets#aws-rds-iam-authentication) and [GCP Cloud SQL](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdeploying\u002Fsecrets#gcp-cloudsql-iam-authentication), secrets management via [AWS Secrets Manager](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdeploying\u002Fsecrets#aws-secrets-manager), [GCP Secret Manager](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdeploying\u002Fsecrets#gcp-secret-manager), [HashiCorp Vault](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdeploying\u002Fsecrets#hashicorp-vault), and more.\n\n## Getting Started\n\nGet started with Atlas by following the [Getting Started](https:\u002F\u002Fatlasgo.io\u002Fgetting-started\u002F) docs.\n\nInspect an existing database schema:\n```shell\natlas schema inspect -u \"postgres:\u002F\u002Flocalhost:5432\u002Fmydb\"\n```\n\nApply your desired schema to the database:\n```shell\natlas schema apply \\\n  --url \"postgres:\u002F\u002Flocalhost:5432\u002Fmydb\" \\\n  --to file:\u002F\u002Fschema.hcl \\\n  --dev-url \"docker:\u002F\u002Fpostgres\u002F16\u002Fdev\"\n```\n\n📖 [Getting Started docs](https:\u002F\u002Fatlasgo.io\u002Fgetting-started\u002F)\n\n## Migration Linting\n\nAtlas ships with 50+ built-in [analyzers](https:\u002F\u002Fatlasgo.io\u002Flint\u002Fanalyzers) that review your migration files\nand catch issues before they reach production. Analyzers detect [destructive changes](https:\u002F\u002Fatlasgo.io\u002Flint\u002Fanalyzers#destructive-changes)\nlike dropped tables or columns, [data-dependent modifications](https:\u002F\u002Fatlasgo.io\u002Flint\u002Fanalyzers#data-dependent-changes)\nsuch as adding non-nullable columns without defaults, and database-specific risks like table locks\nand table rewrites that can cause downtime on busy tables. You can also define\nyour own [custom policy rules](https:\u002F\u002Fatlasgo.io\u002Flint\u002Frules).\n\n```bash\natlas migrate lint --dev-url \"docker:\u002F\u002Fpostgres\u002F16\u002Fdev\"\n```\n\n## Schema Testing\n\n[Test](https:\u002F\u002Fatlasgo.io\u002Ftesting\u002Fschema) database logic (functions, views, triggers, procedures) and\n[data migrations](https:\u002F\u002Fatlasgo.io\u002Ftesting\u002Fmigrate) with `.test.hcl` files:\n\n```hcl\ntest \"schema\" \"postal\" {\n  # Valid postal codes pass\n  exec {\n    sql = \"SELECT '12345'::us_postal_code\"\n  }\n  # Invalid postal codes fail\n  catch {\n    sql = \"SELECT 'hello'::us_postal_code\"\n  }\n}\n\ntest \"schema\" \"seed\" {\n  for_each = [\n    {input: \"hello\", expected: \"HELLO\"},\n    {input: \"world\", expected: \"WORLD\"},\n  ]\n  exec {\n    sql    = \"SELECT upper('${each.value.input}')\"\n    output = each.value.expected\n  }\n}\n```\n\n```bash\natlas schema test --dev-url \"docker:\u002F\u002Fpostgres\u002F16\u002Fdev\"\n```\n\n📖 [Testing docs](https:\u002F\u002Fatlasgo.io\u002Ftesting\u002Fschema)\n\n## Security-as-Code\n\nManage database [roles, permissions](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fpostgres\u002Fsecurity-declarative), and\n[row-level security](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fpostgres\u002Frow-level-security) as version-controlled code:\n\n```hcl\nrole \"app_readonly\" {\n  comment = \"Read-only access for reporting\"\n}\n\nrole \"app_writer\" {\n  comment   = \"Read-write access for the application\"\n  member_of = [role.app_readonly]\n}\n\nuser \"api_user\" {\n  password   = var.api_password\n  conn_limit = 20\n  comment    = \"Application API service account\"\n  member_of  = [role.app_writer]\n}\n\npermission {\n  for_each   = [table.orders, table.products, table.users]\n  for        = each.value\n  to         = role.app_readonly\n  privileges = [SELECT]\n}\n\npolicy \"tenant_isolation\" {\n  on    = table.orders\n  for   = ALL\n  to    = [\"app_writer\"]\n  using = \"(tenant_id = current_setting('app.current_tenant')::integer)\"\n  check = \"(tenant_id = current_setting('app.current_tenant')::integer)\"\n}\n```\n\n📖 [Security-as-Code docs](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fpostgres\u002Fsecurity-declarative)\n\n## Data Management\n\nManage seed and lookup data declaratively alongside your schema:\n\n```sql\nCREATE TABLE countries (\n  id INT PRIMARY KEY,\n  code VARCHAR(2) NOT NULL,\n  name VARCHAR(100) NOT NULL\n);\n\nINSERT INTO countries (id, code, name) VALUES\n  (1, 'US', 'United States'),\n  (2, 'IL', 'Israel'),\n  (3, 'DE', 'Germany');\n```\n\n📖 [Data management docs](https:\u002F\u002Fatlasgo.io\u002Fatlas-schema\u002Fsql)\n\n## ORM Support\n\nDefine your schema in any of the 16 supported ORMs. Atlas reads your models and generates migrations:\n\n| Language | ORMs |\n|----------|------|\n| Go | [GORM](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fgorm), [Ent](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fent), [Bun](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fbun), [Beego](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fbeego), [sqlc](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fframeworks\u002Fsqlc-versioned) |\n| TypeScript | [Prisma](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fprisma), [Drizzle](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fdrizzle), [TypeORM](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Ftypeorm), [Sequelize](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fsequelize) |\n| Python | [Django](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fdjango), [SQLAlchemy](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fsqlalchemy) |\n| Java | [Hibernate](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fhibernate) |\n| .NET | [EF Core](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fefcore) |\n| PHP | [Doctrine](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Forms\u002Fdoctrine) |\n\n📖 [ORM integration docs](https:\u002F\u002Fatlasgo.io\u002Forms)\n\n## Integrations\n\nLint, test, and apply migrations automatically in your CI\u002FCD pipeline or infrastructure-as-code workflow:\n\n| Integration | Docs |\n|-------------|------|\n| GitHub Actions | [Versioned guide](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fci-platforms\u002Fgithub-versioned) · [Declarative guide](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fci-platforms\u002Fgithub-declarative) |\n| GitLab CI | [Versioned guide](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fci-platforms\u002Fgitlab-versioned) · [Declarative guide](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fci-platforms\u002Fgitlab-declarative) |\n| CircleCI | [Versioned guide](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fci-platforms\u002Fcircleci-versioned) · [Declarative guide](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fci-platforms\u002Fcircleci-declarative) |\n| Bitbucket Pipes | [Versioned guide](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fci-platforms\u002Fbitbucket-versioned) · [Declarative guide](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fci-platforms\u002Fbitbucket-declarative) |\n| Azure DevOps | [GitHub repos](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fci-platforms\u002Fazure-devops-github) · [Azure repos](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fci-platforms\u002Fazure-devops-repos) |\n| Terraform Provider | [atlasgo.io\u002Fintegrations\u002Fterraform-provider](https:\u002F\u002Fatlasgo.io\u002Fintegrations\u002Fterraform-provider) |\n| Kubernetes Operator | [atlasgo.io\u002Fintegrations\u002Fkubernetes](https:\u002F\u002Fatlasgo.io\u002Fintegrations\u002Fkubernetes) |\n| ArgoCD | [atlasgo.io\u002Fguides\u002Fdeploying\u002Fk8s-argo](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdeploying\u002Fk8s-argo) |\n| Flux | [atlasgo.io\u002Fguides\u002Fdeploying\u002Fk8s-flux](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdeploying\u002Fk8s-flux) |\n| Crossplane | [atlasgo.io\u002Fguides\u002Fdeploying\u002Fcrossplane](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fdeploying\u002Fcrossplane) |\n| Go SDK | [pkg.go.dev\u002Fariga.io\u002Fatlas-go-sdk\u002Fatlasexec](https:\u002F\u002Fpkg.go.dev\u002Fariga.io\u002Fatlas-go-sdk\u002Fatlasexec) |\n\n### AI Agent Integration\n\nAtlas provides [Agent Skills](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fai-tools\u002Fagent-skills), an open standard for packaging\nmigration expertise for AI coding assistants:\n[Claude Code](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fai-tools\u002Fclaude-code-instructions),\n[GitHub Copilot](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fai-tools\u002Fgithub-copilot-instructions),\n[Cursor](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fai-tools\u002Fcursor-rules),\n[OpenAI Codex](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fai-tools\u002Fcodex-instructions). Learn more at [AI tools docs](https:\u002F\u002Fatlasgo.io\u002Fguides\u002Fai-tools).\n\n## CLI Usage\n\n### `schema inspect`\n\n_**Easily inspect your database schema by providing a database URL and convert it to HCL, JSON, SQL, ERD, or other formats.**_\n\nInspect a specific MySQL schema and get its representation in Atlas DDL syntax:\n```shell\natlas schema inspect -u \"mysql:\u002F\u002Froot:pass@localhost:3306\u002Fexample\" > schema.hcl\n```\n\n\u003Cdetails>\u003Csummary>Result\u003C\u002Fsummary>\n\n```hcl\ntable \"users\" {\n  schema = schema.example\n  column \"id\" {\n    null = false\n    type = int\n  }\n  ...\n}\n```\n\u003C\u002Fdetails>\n\nInspect the entire MySQL database and get its JSON representation:\n```shell\natlas schema inspect \\\n  --url \"mysql:\u002F\u002Froot:pass@localhost:3306\u002F\" \\\n  --format '{{ json . }}' | jq\n```\n\n\u003Cdetails>\u003Csummary>Result\u003C\u002Fsummary>\n\n```json\n{\n  \"schemas\": [\n    {\n      \"name\": \"example\",\n      \"tables\": [\n        {\n          \"name\": \"users\",\n          \"columns\": [\n            ...\n          ]\n        }\n      ]\n    }\n  ]\n}\n```\n\u003C\u002Fdetails>\n\nInspect a specific PostgreSQL schema and get its ERD representation in Mermaid syntax:\n```shell\natlas schema inspect \\\n  --url \"postgres:\u002F\u002Froot:pass@:5432\u002Ftest?search_path=public&sslmode=disable\" \\\n  --format '{{ mermaid . }}'\n```\n\n```mermaid\nerDiagram\n    users {\n      int id PK\n      varchar name\n    }\n    blog_posts {\n      int id PK\n      varchar title\n      text body\n      int author_id FK\n    }\n    blog_posts }o--o| users : author_fk\n```\n\nUse the [split format](https:\u002F\u002Fatlasgo.io\u002Finspect\u002Fdatabase-to-code) for one-file-per-object output:\n\n```bash\natlas schema inspect -u '\u003Curl>' --format '{{ sql . | split | write }}'\n```\n\n```\n├── schemas\n│   └── public\n│       ├── public.sql\n│       ├── tables\n│       │   ├── profiles.sql\n│       │   └── users.sql\n│       ├── functions\n│       └── types\n└── main.sql\n```\n\n📖 [Schema inspection docs](https:\u002F\u002Fatlasgo.io\u002Finspect)\n\n### `schema diff`\n\n_**Compare two schema states and get a migration plan to transform one into the other. A state can be specified using a\ndatabase URL, HCL, SQL, or ORM schema, or a migration directory.**_\n\n```shell\natlas schema diff \\\n  --from \"postgres:\u002F\u002Fpostgres:pass@:5432\u002Ftest?search_path=public&sslmode=disable\" \\\n  --to file:\u002F\u002Fschema.hcl \\\n  --dev-url \"docker:\u002F\u002Fpostgres\u002F15\u002Ftest\"\n```\n\n📖 [Declarative workflow docs](https:\u002F\u002Fatlasgo.io\u002Fdeclarative\u002Fapply)\n\n### `schema apply`\n\n_**Generate a migration plan and apply it to the database to bring it to the desired state. The desired state can be\nspecified using a database URL, HCL, SQL, or ORM schema, or a migration directory.**_\n\n```shell\natlas schema apply \\\n  --url mysql:\u002F\u002Froot:pass@:3306\u002Fdb1 \\\n  --to file:\u002F\u002Fschema.hcl \\\n  --dev-url docker:\u002F\u002Fmysql\u002F8\u002Fdb1\n```\n\n\u003Cdetails>\u003Csummary>Result\u003C\u002Fsummary>\n\n```shell\n-- Planned Changes:\n-- Modify \"users\" table\nALTER TABLE `db1`.`users` DROP COLUMN `d`, ADD COLUMN `c` int NOT NULL;\nUse the arrow keys to navigate: ↓ ↑ → ←\n? Are you sure?:\n  ▸ Apply\n    Abort\n```\n\u003C\u002Fdetails>\n\n📖 [Declarative workflow docs](https:\u002F\u002Fatlasgo.io\u002Fdeclarative\u002Fapply)\n\n### `migrate diff`\n\n_**Write a new migration file to the migration directory that brings it to the desired state. The desired state can be\nspecified using a database URL, HCL, SQL, or ORM schema, or a migration directory.**_\n\n```shell\natlas migrate diff add_blog_posts \\\n  --dir file:\u002F\u002Fmigrations \\\n  --to file:\u002F\u002Fschema.hcl \\\n  --dev-url docker:\u002F\u002Fmysql\u002F8\u002Ftest\n```\n\n📖 [Versioned workflow docs](https:\u002F\u002Fatlasgo.io\u002Fversioned\u002Fdiff)\n\n### `migrate apply`\n\n_**Apply all or part of pending migration files in the migration directory on the database.**_\n\n```shell\natlas migrate apply \\\n  --url mysql:\u002F\u002Froot:pass@:3306\u002Fdb1 \\\n  --dir file:\u002F\u002Fmigrations\n```\n\n📖 [Versioned workflow docs](https:\u002F\u002Fatlasgo.io\u002Fversioned\u002Fapply)\n\n## Supported Version Policy\n\nTo ensure the best performance, security and compatibility with the Atlas Cloud service, the Atlas team\nwill only support the two most recent minor versions of the CLI. For example, if the latest version is\n`v0.25`, the supported versions will be `v0.24` and `v0.25` (in addition to any patch releases and the\n\"canary\" release which is built twice a day).\n\n\n## Community\n\n[Documentation](https:\u002F\u002Fatlasgo.io\u002Fgetting-started) ·\n[Discord](https:\u002F\u002Fdiscord.com\u002Finvite\u002FzZ6sWVg6NT) ·\n[Twitter](https:\u002F\u002Ftwitter.com\u002Fatlasgo_io)\n\n[HCL]: https:\u002F\u002Fatlasgo.io\u002Fatlas-schema\u002Fhcl\n[SQL]: https:\u002F\u002Fatlasgo.io\u002Fatlas-schema\u002Fsql\n[ORM]: https:\u002F\u002Fatlasgo.io\u002Forms\n","Atlas 是一个用于管理和迁移数据库模式的工具，采用现代DevOps原则。它支持声明式和版本化的两种工作流：声明式工作流类似于Terraform，通过比较当前与期望的数据库状态来生成并执行迁移计划；版本化工作流则自动规划模式迁移。Atlas能够处理包括PostgreSQL、MySQL、SQL Server等在内的多种数据库，并允许用户使用HCL、SQL或ORM定义数据库模式。此工具适用于需要频繁进行数据库结构调整或希望将数据库管理纳入代码库中的开发团队，以提高协作效率和减少人为错误。",2,"2026-06-11 03:37:43","high_star"]