Skip to content

Releases: ariga/atlas

v0.26.0

09 Aug 06:53
@a8m a8m
Compare
Choose a tag to compare

We are excited to announce the release of Atlas v0.26 🎊

It's been about a month since our last release, and we're excited to announce that Atlas v0.26 is now available! In this release we are happy to introduce a new feature that has been requested by many of you: support for Entity Framework Core. As part of our ever going effort to improve the quality and coverage of our documentation, we have published a set of guides on testing database schemas and migrations as well as a new GORM Portal.

Read the full announcement in our blogpost.

Note

Stay tuned for our next release which is going to include some exciting new features around declarative migrations and database schema observability.

Quick installation

macOS + Linux:

curl -sSf https://atlasgo.sh | sh

Homebrew:

brew install ariga/tap/atlas

Docker:

docker pull arigaio/atlas

Windows

Download

Legal

The default binaries in this release are distributed released under Atlas EULA, and the community binaries are released under the Apache 2.0 license.

Full Changelog: v0.25.0...v0.26.0

v0.25.0

09 Jul 11:48
@a8m a8m
7e9e0d6
Compare
Choose a tag to compare

We are excited to announce the release of Atlas v0.25 🎊

Thanks for joining us today for our v0.25 release announcement! In this version we are introducing a new feature that has been requested by many of you: support for Row-level Security Policies in PostgreSQL.

What are Row-level Security Policies?

Row-level security (RLS) in PostgreSQL allows tables to have policies that restrict which rows can be accessed or modified based on the user's role, enhancing the SQL-standard privilege system available through GRANT.

When enabled, all normal access to the table must comply with these policies, defaulting to a deny-all approach if no policies are set, ensuring that no rows are visible or modifiable. Policies can be specific to commands, roles, or both, providing fine-grained control over data access and modification.

policy "employee_policy" {
  on    = table.employees
  for   = SELECT
  to    = [PUBLIC]
  using = "(current_user = employee_role)"
}

Read the full announcement and in our blogpost: https://atlasgo.io/blog/2024/07/09/v025-row-level-security

Quick installation

macOS + Linux:

curl -sSf https://atlasgo.sh | sh

Homebrew:

brew install ariga/tap/atlas

Docker:

docker pull arigaio/atlas

Windows

Download

Legal

The default binaries in this release are distributed released under Atlas EULA, and the community binaries are released under the Apache 2.0 license.

Full Changelog: v0.24.0...v0.25.0

v0.24.0

14 Jun 11:07
@a8m a8m
44a6f88
Compare
Choose a tag to compare

We are excited to announce the release of Atlas v0.24 🎊

We are back again with a new release of Atlas, v0.24. In this release we double down on the core principle that has been guiding us from the start: enabling developers to manage their database Schema as Code. The features we announce today may appear like a yet another cool addition to Atlas, but we're confident, that in a few years' time, they will be recognized as something foundational.

In this release we introduce:

  • schema test - a new command (and framework) for testing your database schema using familiar software testing paradigms.
  • migrate test - a new command for testing writing tests for you schema migrations.
  • Enhanced editor support - we have added support for some long awaited features in our VSCode and JetBrains plugins: multi-file schemas, jump to definition, and support for much larger schemas.
test "migrate" "20240613061102" {
  # Migrate to version 20240613061046.
  migrate {
    to = "20240613061046"
  }
  # Insert some test data.
  exec {
    sql = "insert into users (name) values ('Ada Lovelace')"
  }
  # Migrate to version 20240613061102.
  migrate {
      to = "20240613061102"
  }
  # Verify the correctness of the data migration.
  exec {
    sql = "select first_name,last_name from users"
    output = "Ada, Lovelace"
  }
}

Read the full announcement and in our blogpost: https://atlasgo.io/blog/2024/06/13/atlas-v-0-24

Quick installation

macOS + Linux:

curl -sSf https://atlasgo.sh | sh

Homebrew:

brew install ariga/tap/atlas

Docker:

docker pull arigaio/atlas

Windows

Download

Legal

The default binaries in this release are distributed released under Atlas EULA, and the community binaries are released under the Apache 2.0 license.

Full Changelog: v0.23.0...v0.24.0

v0.23.0

21 May 12:11
@a8m a8m
fa6c067
Compare
Choose a tag to compare

We are excited to announce the release of Atlas v0.23 🎊

It's been a few weeks since the release of v0.22 and we're excited to be back with the next version of Atlas, packed with some long awaited features and improvements.

  • Redshift Support - Amazon Redshift, a fully managed, petabyte-scale data warehouse service in the cloud. Starting today, you can use Atlas to manage your Redshift Schema-as-Code.
  • CircleCI Integration - Following some recent requests from our Enterprise customers, we have added a CircleCI orb to make it easier to integrate Atlas into your CircleCI pipelines.
  • Kubernetes Operator Down Migrations - The Kubernetes Operator now detects when you are moving to a previous version and will attempt to apply a down migration if configured to do so.
  • GORM View Support - We have added support for defining SQL Views in your GORM models.
  • SQLAlchemy Provider Improvements - We have added support for defining models using SQLAlchemy Core Tables in the SQLAlchemy provider.
  • ERD v2 - We have added a new navigation sidebar to the ERD to make it easier to navigate within large schemas.
  • PostgreSQL Improvements - We have added support for PostgreSQL Event Triggers, Aggregate Functions, and Function Security.

Read the full announcement and in our blogpost: https://atlasgo.io/blog/2024/05/21/atlas-v-0-23

Quick installation

macOS + Linux:

curl -sSf https://atlasgo.sh | sh

Homebrew:

brew install ariga/tap/atlas

Docker:

docker pull arigaio/atlas

Windows

Download

Legal

The default binaries in this release are distributed released under Atlas EULA, and the community binaries are released under the Apache 2.0 license.

Full Changelog: v0.22.0...v0.23.0

v0.22.0

30 Apr 12:46
@a8m a8m
296a12c
Compare
Choose a tag to compare

We are excited to announce the release of Atlas v0.22 🎊

We're happy to share with you v0.22, which includes very exciting improvements for Atlas. Here's what's new:

  • RENAME Detection - Prior to version v0.22, Atlas interpreted schema renames as DROP and ADD commands. This version includes a rename detector that identifies such operations and interactively asks the user for feedback before generating the changes.
  • Preventing Table Locks - Eight new checks have been added to the migrate lint to detect table locks in various modes, which can be avoided during the PR stage. Note, these checks are available for Atlas Cloud users only πŸš€
  • Added support for PostgreSQL UNIQUE and EXCLUDE constraints.
  • PostgreSQL composite types can now be managed as part of your schema.
  • Added support for sequence objects in Microsoft SQL Server.

Quick installation

macOS + Linux:

curl -sSf https://atlasgo.sh | sh

Homebrew:

brew install ariga/tap/atlas

Docker:

docker pull arigaio/atlas

Windows

Download

Legal

The default binaries in this release are distributed released under Atlas EULA, and the community binaries are released under the Apache 2.0 license. If you would like to build Atlas from source follow the instructions here.

Full Changelog: v0.21.0...v0.22.0

v0.21.0

01 Apr 19:06
@a8m a8m
464a173
Compare
Choose a tag to compare

We are excited to announce the release of Atlas v0.21 🎊

It's been only two weeks since our last version and today I'm happy to share with you v0.21, which includes very exciting feature for Atlas: migrate down.

The new atlas migrate down command allows reverting applied migrations. Unlike the traditional approach, where down files are "pre-planned", Atlas computes a migration plan based on the current state of the database. Atlas reverts previously applied migrations and executes them until the desired version is reached, regardless of the state of the latest applied migration β€” whether it succeeded, failed, or was partially applied and left the database in an unknown version.

Read the full announcement and in our blogpost: https://atlasgo.io/blog/2024/04/01/migrate-down

image

Quick installation

macOS + Linux:

curl -sSf https://atlasgo.sh | sh

Homebrew:

brew install ariga/tap/atlas

Docker:

docker pull arigaio/atlas

Windows

Download

Legal

The default binaries in this release are distributed released under Atlas EULA, and the community binaries are released under the Apache 2.0 license. If you would like to build Atlas from source follow the instructions here.

Full Changelog: v0.20.0...v0.21.0

v0.20.0

17 Mar 13:00
@a8m a8m
6c99dbd
Compare
Choose a tag to compare

We are excited to announce the release of Atlas v0.20 🎊

It's been a few weeks since our last version announcement and today I'm happy to share with you v0.20, which includes very exciting improvements for Atlas. Here's what's new:

  • Support for PostgreSQL Extensions - Atlas now supports installing and managing PostgreSQL extensions.
  • Django ORM Integration - Atlas now supports Django! Django is a popular ORM for Python. Developers using either ORM can now use Atlas to automatically plan schema migrations for them, based on the desired state of their schema instead of crafting them by hand.
  • SQL Server is out of Beta - SQL Server is officially out of Beta! Along with this official support, we have included some new features:
    • User-Defined Types support for SQL Server - Atlas now supports two User-Defined Types: alias types and table types.
    • Azure Active Directory (AAD) Authentication for SQL Server - Connect to your SQL Server database using AAD Authentication.
  • Dashboards in the Cloud - The dashboard (previously the 'Projects' page) got a whole new look in Atlas Cloud. Now you can view the state of your projects and environments at a glance.

Read the full announcement on our blog: https://atlasgo.io/blog/2024/03/18/atlas-v-0-20

image

Quick installation

macOS + Linux:

curl -sSf https://atlasgo.sh | sh

Homebrew:

brew install ariga/tap/atlas

Docker:

docker pull arigaio/atlas

Windows

Download

Legal

The default binaries in this release are distributed released under Atlas EULA, and the community binaries are released under the Apache 2.0 license. If you would like to build Atlas from source follow the instructions here.

Full Changelog: v0.19.0...v0.20.0

v0.19.0

02 Feb 14:29
@a8m a8m
bf1bf8e
Compare
Choose a tag to compare

We are excited to announce the release of Atlas v0.19.0 🎊

It has been three weeks since our last version announcement, and today I'm happy to share with you v0.19, which includes some very exciting improvements for Atlas. Here's what's new:

  • Pre-migration Checks: Before executing schema changes, you can now add pre-migration checks that will be verified to help avoid risky migrations.
  • Schema Docs: Atlas lets you manage your database schema as code. One of the things we love most about code, is that because of its formal structure, it's possible to automatically generate documentation from it. With this release, we're introducing a new feature that lets you generate code-grade documentation for your database schema.
  • SQL Server Trigger Support: Atlas now supports managing triggers in SQL Server.
  • ClickHouse Materialized Views Support: Atlas now supports managing materialized views in ClickHouse.

Read the full announcement on our blog: https://atlasgo.io/blog/2024/02/02/atlas-v-0-19

image

Quick installation

macOS + Linux:

curl -sSf https://atlasgo.sh | sh

Homebrew:

brew install ariga/tap/atlas

Docker:

docker pull arigaio/atlas

Windows

Download

Legal

The default binaries in this release are distributed released under Atlas EULA, and the community binaries are released under the Apache 2.0 license. If you would like to build Atlas from source follow the instructions here.

Full Changelog: v0.18.0...v0.19.0

What's Changed

  • doc: update banner by @a8m in #2439
  • sql/postgres: attach change source to multi-statement changes by @a8m in #2441
  • docs: change ApplyParams to MigrateApplyParams by @haoxins in #2443
  • doc/md: features availability comparison by @rotemtam in #2444
  • doc/md: support page by @rotemtam in #2445
  • doc/md/features: checkpoints require login by @rotemtam in #2446
  • doc/md: update schema for SQLServer by @giautm in #2354
  • doc/md: added SQL server example by @giautm in #2448
  • docs: update APIs with atlas-go-sdk v0.4 by @haoxins in #2449
  • doc/website: re-add cloud link to top navbar by @rotemtam in #2451
  • sql/internal/specutil: fix typo by @a8m in #2457
  • cmd/atlas/cmdlog: extend migrate apply output by @a8m in #2461
  • doc: add documentation for set change analyzers by @noamcattan in #2464
  • schemahcl: allow set for_each on tuple any by @a8m in #2466
  • doc: login to extend inspection by @a8m in #2469
  • doc/md: update document and guide for SQL server by @giautm in #2470
  • doc/md: trigger example for SQL Server by @giautm in #2471
  • doc/website/blog: why you need schema as code by @rotemtam in #2474
  • website/blog: edit clickhouse blog by @hilakashai in #2475
  • doc/md: support sqlserver for gorm and sequelize by @giautm in #2476
  • doc/orm: add list of supported orms by @a8m in #2479
  • website/blog: add example to blogpost by @hilakashai in #2481
  • doc/md: update HCL types for MSSQL by @giautm in #2478
  • sql/specutil: marshal materialized for multiple schemas by @datdao in #2485
  • cmd/atlas: allow ref env:https:// to known attributes by @a8m in #2489
  • doc/md: clickhouse guide by @hilakashai in #2487
  • doc/md: fix clickhouse guide example by @hilakashai in #2490
  • cmd/atlas: add checks to migration reporting by @a8m in #2493
  • doc: pre-migration checks page by @a8m in #2495
  • doc/clickhouse: add materialized view by @datdao in #2491
  • sql/sqlite: Fix DROP TABLE IF EXISTS by @eric in #2499
  • cmd/atlas/internal/cmdapi: use driver-aware statement scanning in migrate status by @a8m in #2497
  • sql/internal/specutil: accept uint64 in schemahcl by @a8m in #2504
  • doc/website: v0.19 announcement by @hilakashai in #2502

New Contributors

Full Changelog: v0.18.0...v0.19.0

v0.18.0

11 Jan 20:33
@a8m a8m
ddd1261
Compare
Choose a tag to compare

We are excited to announce the release of Atlas v0.18.0 🎊

It's been only a bit over a week since our last release, but we have some exciting new features we couldn't wait to share with you:

  • Drift Detection - A common source of database trouble is that the schema in your database doesn't match the schema in your code. This can happen for a variety of reasons, including manual changes to the database, or changes made by other tools. Today, we are happy to announce the availability of a new feature that lets you automatically detect these drifts, and alerts you when they happen.
  • SQLAlchemy Support - SQLAlchemy is a popular Python ORM. Developers using SQLAlchemy can use Atlas to automatically plan schema migrations for them, based on the desired state of their schema instead of crafting them by hand.
  • Composite Schemas - The newly added composite_schema data source lets you combine multiple schemas into one, which is useful for managing schemas that are loaded from multiple sources or to describe applications that span multiple database schemas.
  • VSCode ERDs - We've added a new feature to our VSCode extension that lets you visualize your database schema as an ERD diagram.

image

Read the full announcement on our blog: https://atlasgo.io/blog/2024/01/09/atlas-v0-18

Quick installation

macOS + Linux:

curl -sSf https://atlasgo.sh | sh

Homebrew:

brew install ariga/tap/atlas

Docker:

docker pull arigaio/atlas

Windows

Download

Legal

The default binaries in this release are distributed released under Atlas EULA, and the community binaries are released under the Apache 2.0 license. If you would like to build Atlas from source follow the instructions here.

Full Changelog: v0.17.0...v0.18.0

What's Changed

  • cmd/atlas/internal/sqlparse/myparse: move oss parser to ent by @a8m in #2415
  • cmd/atlas/internal: fix quotation in migrate diff example by @ronenlu in #2402
  • cmd/atlas/internal/sqlparse: rename myparse.Parser to FileParser by @a8m in #2416
  • sql/internal/sqlx: changes planer compares schema by name by @a8m in #2417
  • doc/md: add sqlalchemy provider guide by @ronenlu in #2411
  • sql/internal/specutil: marshal unquoted literals for text-based types by @a8m in #2419
  • cmd/atlas: initialize the cmd context by @rotemtam in #2422
  • schemahcl: allow using references in the for_each meta argument by @a8m in #2423
  • cmd/atlas: report env loaded by @rotemtam in #2424

Full Changelog: v0.17.0...v0.18.0

v0.17.0

01 Jan 19:42
@a8m a8m
cc75025
Compare
Choose a tag to compare

We are excited to announce the release of Atlas v0.17.0 🎊

It's been only a bit over a week since our last release, but we have some exciting new features we couldn't wait to share with you:

  • Trigger Support - Atlas now supports managing triggers on MySQL, PostgreSQL, MariaDB, and SQLite databases.
  • Improved ERDs - You can now visualize your schema's SQL views, as well as create filters to select the specific database objects you wish to see.

Read the full announcement on our blog: https://atlasgo.io/blog/2024/01/01/atlas-v-0-17

image

Quick installation

macOS + Linux:

curl -sSf https://atlasgo.sh | sh

Homebrew:

brew install ariga/tap/atlas

Docker:

docker pull arigaio/atlas

Windows

Download

Legal

The default binaries in this release are distributed released under Atlas EULA, and the community binaries are released under the Apache 2.0 license. If you would like to build Atlas from source follow the instructions here.

What's Changed

Commits history
  • gomod: upgrade golang.org/x/crypto by @dorav in #2389
  • doc/md: add clickhouse by @datdao in #2384
  • cmd/atlas: remove go.work files by @a8m in #2391
  • cmd/atlas: add docker driver for clickhouse by @giautm in #2390
  • doc/md: support clickhouse docker by @datdao in #2392
  • sql/sqlspec: add triggers to document by @a8m in #2393
  • sql/internal/sqlx: respect self reference fks in migrate plan by @a8m in #2394
  • cmd/atlas/internal/cmdapi: add views, funcs, procs, triggers to skip diff policy by @a8m in #2395
  • sql/sqlite: allow extending spec with triggers by @a8m in #2396
  • sql/mysql: allow extending spec with triggers by @a8m in #2398
  • sql/migrate: fix compound blocks scanning by @a8m in #2399
  • sql/migrate: improve begin..end block detection by @a8m in #2401
  • sql: add triggers to schema inspect/exclude by @a8m in #2403
  • sql/internal/sqlx: make view def diffing generic for any def by @a8m in #2404
  • sql/mysql: allow extending inspection with triggers by @a8m in #2405
  • sql/internal/sqlx: add modify and drop triggers to plan compute by @a8m in #2406
  • sql/sqlite: allow extending inspection with triggers by @a8m in #2407
  • cmd/atlas/internal/cmdext: make schema reader errors friendlier by @a8m in #2408
  • sql/internal/sqlx: indirect drop trigger dropping by @a8m in #2409
  • doc/hcl: add triggers to schema examples by @a8m in #2412
  • doc/website/blog: v0.17 announcement by @rotemtam in #2413

Full Changelog: v0.16.0...v0.17.0