Releases: ariga/atlas
v0.18.0
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.
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
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
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
Quick installation
macOS + Linux:
curl -sSf https://atlasgo.sh | sh
Homebrew:
brew install ariga/tap/atlas
Docker:
docker pull arigaio/atlas
Windows
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
v0.16.0
We are excited to announce the release of Atlas v0.16.0 🎊
Hi everyone!
It's been a while since our last version announcement and today I'm happy to share with you v0.16, which includes some very exciting improvements for Atlas:
- ClickHouse Beta Program - ClickHouse is a high-performance, columnar database optimized for analytics and real-time query processing. Support for ClickHouse in Atlas has been one of the top requested features by our community in the past year. Today, we are happy to announce the launch of our ClickHouse Beta Program which you can sign up for today. See details below.
- Hibernate Provider - Atlas now supports loading the desired state of your database directly from your Hibernate code. Hibernate developers can now join developers from the GORM, Sequelize, TypeORM and more communities who can now use Atlas to manage their database schema.
- Baseline Schemas - In some cases, your migrations rely on certain database objects to exist apriori to your application schema, for example extensions or legacy tables. Atlas now supports defining a baseline schema which will be loaded before automatically planning and applying your migrations.
- Proactive conflict detection - Teams that have connected their project to Atlas Cloud will get a prompt in the CLI if their migration directory is out of sync with the latest version in Atlas Cloud. This ensures that new migration files are added in a sequential order, preventing unexpected behavior.
- Mermaid Support - Atlas now supports generating a Mermaid diagram of your database schema. This is a great way to visualize your database schema and share it with your team.
- Review Policies - Users working with declarative migrations can now define "review policies" which can define thresholds for which kinds of changes require human review and which can be auto-applied.
- Postgres Sequences - Another long-awaited feature, Atlas now supports managing sequences in PostgreSQL.
Read the full announcement on our blog: https://atlasgo.io/blog/2023/12/19/atlas-v-0-16
Quick installation
macOS + Linux:
curl -sSf https://atlasgo.sh | sh
Homebrew:
brew install ariga/tap/atlas
Docker:
docker pull arigaio/atlas
Windows
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
- doc/website: update banner by @hilakashai in #2213
- cmd/atlas/internal/cmdext: add support for 'extenral' data source by @a8m in #2212
- doc: add external data source to project config by @a8m in #2216
- sql/postgres: drop cascade funcs and procs by @a8m in #2217
- cmd/atlas/internal/sqlparse: use postgresql-parser for windows by @a8m in #2218
- cmd/atlas: init stubs by @rotemtam in #2219
- cmd/atlas/internal/cmdlog: add mermaid to template functions by @a8m in #2223
- schemahcl: add more tf functions to stdlib by @a8m in #2224
- cmd/atlas/internal/cmdapi: read and evaluate config file only once by @a8m in #2226
- cmd/atlas/internal/cmdapi: fix broken tests by @a8m in #2227
- Revert "doc/md: remove windows installation instructions and advise f… by @masseelch in #2228
- cmd/atlas/internal/cmdext: atlas.sum is optional for schema directories (not migrations) by @a8m in #2230
- cmd/atlas/internal: support apply review policies in project files by @rotemtam in #2235
- doc/md: document tools.go for gorm provider by @rotemtam in #2238
- cmd/atlas/internal/cmdapi: set flags from config file to schema push command by @a8m in #2239
- cmd/atlas: added context flag to migrate apply by @dorav in #2237
- cmd/atlas/internal/cmdapi: add stubs for remote schemas (atlas://) by @a8m in #2244
- sql/internal/specutil: skip qualify repeatable blocks by @a8m in #2245
- sql/migrate: fix flaky TestHashSum test by @a8m in #2246
- cmd/atlas/internal/docker: allow custom images in docker driver by @a8m in #2249
- Added indirect dependency for grpc:v1.58.3 by @kabobbob in #2242
- cmd/atlas/internal/cmdapi: support reference env:// attributes by @a8m in #2253
- sql/postgres: support add enum values before/after exisiting values by @a8m in #2255
- sqlparse/sqliteparse: fixed err checks in recover by @giautm in #2256
- cmd/atlas: upgrade antlr package by @giautm in #2257
- cmd/atlas/internal/cmdext: stub for remote_schema data source by @a8m in #2259
- cmd/atlas/internal/cmdlog: remove space from column name and type by @a8m in #2261
- go: upgrade spf13/cobra by @a8m in #2264
- cmd/atlas/internal/cmdstate: shared package for storing cmd states by @a8m in #2267
- cmd/atlas/internal/cmdstate: disable homedir cache in tests by @a8m in #2268
- cmd/atlas/internal/cmdapi: use t.TempDir for testing by @a8m in #2269
- cmd/atlas/internal/cmdapi: revert t.TempDir for creating sqlite files by @a8m in #2270
- cmd/atlas/internal/cmdapi: hook into RunE execution by @a8m in #2271
- cmd/atlas/internal/cmdapi: allow ent version to check if dir rebased by @a8m in #2272
- doc: add new diff prompt behavior by @a8m in #2273
- cmd/atlas/internal/cmdext: move ent loader to stub by @a8m in #2275
- sql/mysql: inspect mariadb check constraints correctly by @a8m in #2276
- Fix link of
atlas migrate lint
by @michiomochi in #2278 - cmd/atlas/internal/cmdapi: review policy excludes auto-approve by @rotemtam in #2279
- cmd/atlas: update entgo.io/ent by @a8m in #2280
- cmdext: revert support
env://VARIABLE
forruntimevar
datasource (#2078) by @giautm in #2281 - doc/md: document review policy by @rotemtam in #2284
- cmd/atlas: pipe docker run errors to the user by @a8m in #2285
- sql/migrate: support controlling the execution order by @a8m in #2287
- doc/md/integrations: fix invalid dir in configMap by @datdao in #2289
- cmd/atlas/internal/cmdlog: indent new line in apply log by @masseelch in #2288
- .github/workflows: cancel in progress workflows with newer commits by @masseelch in #2290
- cmd/atlas: add out-of-order to 'migrate status' by @a8m in #2291
- sql/internal/sqlx: add Builder.WrapErr by @a8m in #2294
- internal/ci: ignore ops directory by @giautm in #2296
- Add libsql+file:// support by @haaawk in #2203
- website: update versioned migration illustration by @a8m in #2299
- cmd/atlas/internal/cmdapi: support env:// vars in lazy dev connection creation by @a8m in #2302
- cmd/atlas: allow extending config hcl parse options by @a8m in #2306
- sql/mysql/mysqlcheck: allow extending analyzers by @noamcattan in #2307
- doc/website/blog: better example for gorm viz by @rotemtam in #2308
- schemahcl: allow registering custom type-block to first eval phase by @a8m in #2309
- sql/migrate: add the not-clean state to the error by @a8m in #2310
- all: update deps by @masseelch in #2311
- sql: standardize restore function creation by @a8m in #2312
- sql/schema: standardize format/parse types interface by @a8m in #2313
- all: update gocloud.dev/runtimevar by @masseelch in #2314
- doc/md/concepts: using non alphanumeric characters in urls by @rotemtam in #2315
- cmd/atlas/internal: miscellaneous changes to allow extending schemahcl with ...
v0.15.0
We are excited to announce the release of Atlas v0.15.0 🎊
Hi everyone!
It's been a few weeks since our last version announcement and today we are happy to share with you v0.15, which includes some very exciting improvements for Atlas:
- Interactive Declarative Migrations - Atlas supports a Terraform-like workflow for managing your database schema using the schema apply command. In this release we have added a new "Lint and Edit" mode to this command, which will analyze your schema changes for issues and will allow you to edit them interactively before applying them to your database.
- Functions and Stored Procedures - Atlas now supports creating and managing functions and stored procedures in your database schema.
- Postgres Domains - In addition, Atlas now supports Postgres Domains.
- TypeORM Integration - TypeORM is a popular ORM for Node.js. In this release, we are happy to announce the TypeORM integration, which allows you to automatically generate your database schema from your TypeORM entities, create visualizations and more.
Let's dive right in!
Quick installation
macOS + Linux:
curl -sSf https://atlasgo.sh | sh
Homebrew:
brew install ariga/tap/atlas
Docker:
docker pull arigaio/atlas
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
- doc/website/blog: v0.14.0 announcement by @rotemtam in #2041
- cmd/atlas/migratelint: add support for dir-based change detector by @a8m in #2042
- cmd/atlas/cloudapi: add default atlas dir by @a8m in #2043
- doc/md: update info in management ui doc by @hilakashai in #2046
- doc/md: redirect old docs by @hilakashai in #2047
- cmd/atlas: support
build-tags
for entloader by @giautm in #2050 - cmd/atlas: migrate lint stubs for cloud by @a8m in #2052
- cmd/atlas: expose migration dir type by @a8m in #2053
- schemahcl: print native values as is by @a8m in #2054
- go: bump to 1.21 by @a8m in #2055
- doc/setup-ci: fixed incorrect github extension command by @dorav in #2056
- doc: update atlas-sync-action docs by @noamcattan in #2044
- cmd/atlas/migratelint: move stepreport to type by @a8m in #2062
- cmd/atlas: stub for change detection by @a8m in #2065
- cmd/atlas/internal/cmdapi: extract prompt apply to function by @rotemtam in #2067
- cmd/atlas/internal/cmdapi: connect prompt to stdio by @rotemtam in #2068
- cmd/atlas/internal/cmdapi: need sqlclient when applying by @rotemtam in #2069
- doc/md/guides: gitlab ci guide by @rotemtam in #2064
- doc/github-actions: documented 'setup-atlas' action by @dorav in #2063
- doc/website: update 0.0.23 -> 0.0.26 by @ronenlu in #2070
- ci: make runner input flag by @masseelch in #2071
- schemahcl: add
urluserinfo
function by @giautm in #2073 - doc: doc for new 'atlas migrate lint' behavior by @a8m in #2072
- sql/sqlite: detect generated indexes on diff by @a8m in #2074
- doc/md/guides/ci: gitlab add image and fix yaml by @rotemtam in #2076
- cmd/atlas: migrate formatter defaults to atlas by @a8m in #2075
- cmd/atlas/internal: support reporting local directories by @a8m in #2077
- cmd/atlas: allow attaching config token to context by @a8m in #2079
- cmd/atlas/internal: pass configured client to context setter by @a8m in #2080
- cmd/atlas/internal: skip reporting local directories by @a8m in #2084
- sql/postgres: fix panic in postgres DefaultDiffer func by @ronenlu in #2085
- cmdext: support
env://VARIABLE
forruntimevar
datasource by @giautm in #2078 - doc: add short intro to the migrate apply page by @a8m in #2088
- cmd/atlas/internal: move devloader login to helper function by @a8m in #2091
- sql/postgres: remove unused collate/ctype attributes form inspection by @a8m in #2094
- doc/md: flux cd guide by @rotemtam in #2092
- doc/website: update operator v0.3.3 by @datdao in #2066
- cmd/atlas/internal/cmdapi: allow promptApply to be extended with dev … by @a8m in #2097
- doc/md: guide for sequelize schema loader by @ronenlu in #2098
- doc/md/guides: modern ci/cd for databases guide by @rotemtam in #2100
- doc/md: move guide url by @rotemtam in #2105
- cmd/atlas/internal: url/open error by @a8m in #2106
- cmd/atlas: omit url strings from parse errors by @a8m in #2108
- sql: add support for materialized views in sqlspec by @a8m in #2109
- cmd/atlas/internal/cmdext: allow using data.template_dir as desired state by @a8m in #2113
- sql/internal/sqlx: add mviews to standard differ by @a8m in #2114
- sql/postgres: support materialized views indexes by @a8m in #2120
- internal/ci: specify go versions to use on generated workflow files by @masseelch in #2121
- doc/website/blog: post announcing external loader for sequelize by @ronenlu in #2101
- doc/website/blog: update sequelize blog post title by @rotemtam in #2123
- sql/postgres: fix empty enum schema by @hectorj-thetreep in #2125
- cmd/atlas/internal/cmdapi: return back the prompt label by @a8m in #2126
- sql/sqlite: ensure default expressions are wrapped by @a8m in #2127
- cmd/atlas: update command flag examples by @a8m in #2103
- cmd/atlas: quote possible shell expansion issues by @masseelch in #2128
- doc: update concurrent_index policy by @a8m in #2132
- sql: add funcs/procs stubs by @a8m in #2139
- sql/postgres: allow extending pg to check changes by @a8m in #2140
- cmd/atlas: pass correct command context to log templates by @a8m in #2141
- doc/website: bump website version to 0.0.28 by @noamcattan in #2133
- doc: materialized views are in beta by @a8m in #2142
- cmd/internal/sqlparse/pgparse: move to pgquery by @a8m in #2143
- sql/internal/sqlx: allow diff driver override the view.def comparison by @a8m in #2144
- sql/internal/specutil: add procs/funcs scan functions by @a8m in #2146
- sql/postgres: allow extend planners with proc/func changes by @a8m in #2147
- internal/integration: limit test scope to schemas and tables by @a8m in #2148
- sql: add funcs/procs changes by @a8m in #2150
- cmd/atlas/migratelint: add url to summary report and add helper to count diagnostics by @a8m in #2151
- cmd/atlas: vercheck endpoint stub by @rotemtam in #2149
- sql/migrate: skip non-standard #-based comments inside parens by @a8m in #2154
- sql/schema: add helper for Funcs and Procs by @giautm in #2159
- Add support for postgis in --dev-url by @anthonybishopric in #2160
- doc/website-icon-fix by @dimagreat in #2161
- cmd/atlas/migratelint: set missing error field by @a8m in #2162
- cmd/atlas/internal/cmdlog: add funcs/procedures to sql format by @a8m in #2163
- sql/internal/sqlx: add funcs/procs to normalize by @a8m in #2164
- sql/migrate: scan sql-standard body in functions/procedures by @a8m in https://github.com/ariga/atlas/pull/...
v0.14.0
We are excited to announce the release of Atlas v0.14.0 🎊
It's been a few weeks since our last version announcement and today we're happy to share with you v0.14, which includes some very exciting improvements for Atlas. Read the announcement blog post.
What's new
- Checkpoints - As your migration directory grows, replaying it from scratch can become annoyingly slow. Checkpoints
allow you to save the state of your database at a specific point in time and replay migrations from that point forward. - Push to the Cloud - You can now push your migration directory to Atlas Cloud directly from the CLI. Think of it like
docker push
for your database migrations. - JetBrains Editor Support - After launching our VSCode Extension a few months ago, our team has been hard at work to bring the same experience to JetBrains IDEs. Starting today, you can use Atlas directly from your favorite JetBrains IDEs (IntelliJ, PyCharm, GoLand, etc.) using the new Atlas plugin.
- Reporting Deployments - Atlas supports the reporting of migration deployments to personal workspaces in Atlas Cloud. This provides full visibility into the databases, migration runs, and their statuses for each project.
Quick installation
macOS + Linux:
curl -sSf https://atlasgo.sh | sh
Homebrew:
brew install ariga/tap/atlas
Docker:
docker pull arigaio/atlas
Windows
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
- add atlas npx install to README by @ronenlu in #1953
- doc/website: auto add utm tags to cloud landing page by @rotemtam in #1954
- doc: update website with latest changes by @a8m in #1956
- doc: add nulls_distinct attribute by @a8m in #1957
- sql/mysql: respect zerofill attribute in float/double types by @a8m in #1958
- cmd/atlas/internal: add atlas version to user agent header in cloud client by @ronenlu in #1955
- sql/postgres: add pg_trgm operator classes to variables by @a8m in #1962
- sql/postgres: add postgis operator classes by @a8m in #1963
- cmd/atlas: simplify the way version is set by @a8m in #1964
- doc/website/blog: gormviz blog by @rotemtam in #1966
- doc/website/blog: grammar on gormviz blog by @rotemtam in #1967
- doc/website/blog: fix url pointing to schema loaders by @ronenlu in #1969
- doc/md/cloud: setting up ci with atlas cloud guide by @rotemtam in #1970
- sql/migrate: add support for baseline/tags files by @a8m in #1971
- sql/internal/sqlx: support cross-schema refs with same names by @a8m in #1974
- cmd/atlas: handle checkpoint files in migrate status by @a8m in #1972
- cmd/atlas: rename cmd/atlas/lint to cmd/atlas/migratelint by @a8m in #1975
- cmd/atlas/migratelint: support checkpoint files by @a8m in #1977
- doc/md: fix small typo in eula url by @marcozac in #1979
- cmd/atlas: remove revision-schema flag from migrate diff by @a8m in #1978
- cmd/atlas: add support for 'migrate checkpoint' by @a8m in #1982
- cmd/atlas: update ariga.io/atlas by @a8m in #1983
- sql/migrate: do not compare schema attributes on checkpoint by @a8m in #1986
- internal/integration: add tests for migrate checkpoint by @a8m in #1989
- cmd/atlas/internal/cmdext: support rds iam token by @rotemtam in #1990
- doc/md/integrations: update go sdk integration by @rotemtam in #1987
- doc/md: fixed wrong sample code for gorm guide by @kylelmh in #1991
- doc/md: update the doc of creating bot in cloud by @ronenlu in #1992
- doc/website: new share image template by @rotemtam in #1993
- doc/website/blog: iam auth blog post by @rotemtam in #1996
- Build arm64 mysql and mariadb Docker images by @jacobwgillespie in #1998
- cmd/atlas: allow extending migrate commands by @a8m in #2000
- .github/ops/mysql: fix Dockerfile builds, fix mariadb:latest by @jacobwgillespie in #2001
- Don't fail all Docker image builds on single failure, pre-create initialized-db by @jacobwgillespie in #2003
- Fix generation of initialized DB in Dockerfile by @jacobwgillespie in #2004
- .github: dev docker, disable
arm64
formariadb:10.3.13
by @giautm in #2002 - sql: avoid ambiguity between resource label and qualifier by @a8m in #2005
- cmd/atlas: rm unexported commands until next release by @a8m in #2006
- cmd/atlas: read and fmt gql errors by @a8m in #2008
- cmd/atlas: add option to attach client to context by @a8m in #2011
- cmd/atlas: stub for reading atlas directory by its slug/tag by @a8m in #2013
- cmd/atlas: print deployment url by @a8m in #2014
- doc: intro to versioned migration with atlas push by @a8m in #2016
- sql/internal/sqlx: support type selectors on exclude globs by @a8m in #2018
- doc: add the --web flag to getting started by @a8m in #2022
- sql/mysql: add table+column context to parse type errors by @a8m in #2023
- doc/website: change share image by @a8m in #2021
- sql/mysql: do not add mariadb json checks to table definition by @a8m in #2026
- cmd/atlas: attach attributes to json format by @a8m in #2020
- doc/md: update SQLServer URL example by @giautm in #2024
- sql/mysql: support mariadb old temporal data types comments by @a8m in #2028
- sql/postgres: scan foreign-key action codes by @a8m in #2029
- sql/internal/sqlx: consistent order from topsort by @a8m in #2030
- cmd/atlas/internal/cmdapi/vercheck: goos and arch in vercheck ua by @rotemtam in #2031
- cmd/ext: create gcp_cloudsql_token datasource by @giautm in #2032
New Contributors
- @marcozac made their first contribution in #1979
- @kylelmh made their first contribution in #1991
- @jacobwgillespie made their first contribution in #1998
Full Changelog: v0.13.0...v0.14.0
v0.13.0
We are excited to announce the release of Atlas v0.13.0 🎊
It's been just over two months since our last version announcement and today I'm super excited to share with you our latest release, v0.13, which includes some long-anticipated additions to Atlas:
- Atlas and Atlas Community Editions - we are making a change in the way Atlas is distributed. Starting today, we are making many of the features previously available only in the commercial version of Atlas available to everyone for free. More on this below.
- Support for SQL Views - SQL Views are virtual tables in a database created by a query and stored in the database. Starting today, you can manage views in your database using the same Atlas workflows you use for tables, indexes, foreign keys, etc.
- Microsoft SQL Server Driver Beta - Over the last few months, we have been working on a driver for MS-SQL with some of our enterprise design partners and are happy to make it available to you as a beta.
- Built-in schema visualization - Over the past year we released some tools to help developers visualize their database schemas using Entity Relationship Diagrams (ERDs). Starting today, you can use the atlas
schema inspect --visualize
command to create database ERDs directly from the command line. - GitHub Action for Deployments - We recently received a request from the community to add a GitHub Action to streamline applying migrations directly from GitHub workflows. We thought this was a great idea and are happy to introduce
ariga/atlas-deploy-action
which you can use to deploy your migrations today. - Type checking for schema files - As part of our continuous effort to make the experience of working with Atlas as smooth as possible, we are excited to ship a new engine for running type checks on your schema files.
Quick installation
macOS + Linux:
curl -sSf https://atlasgo.sh | sh
Homebrew:
brew install ariga/tap/atlas
Docker:
docker pull arigaio/atlas
Windows
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
* cmd/atlas: update ariga.io/atlas by @a8m in https://github.com//pull/1707 * chore: Use ldflag version in migrate_test.go in NoPendingFiles by @silasdavis in https://github.com//pull/1712 * cmd/atlas: add example for 'schema diff' with dev and exclude defined in config by @a8m in https://github.com//pull/1714 * doc: fix projects page and extend 'exclude' examples by @a8m in https://github.com//pull/1715 * sql/migrate: support for migration planning mode by @a8m in https://github.com//pull/1719 * merge libsql by @a8m in https://github.com//pull/1716 * doc/website: update logos by @dimagreat in https://github.com//pull/1720 * doc/md: turso guide by @rotemtam in https://github.com//pull/1721 * sql/schema: add view types for (un)marshal by @a8m in https://github.com//pull/1723 * sql/internal/specutil: marshal view spec by @a8m in https://github.com//pull/1725 * sql/sqlspec: marshal view definition after columns by @a8m in https://github.com//pull/1728 * sql: minor sync from ent repo by @a8m in https://github.com//pull/1729 * ci: make go build tag aware by @masseelch in https://github.com//pull/1730 * cmd/atlas/internal: initial support for schema loaders by @a8m in https://github.com//pull/1733 * integration: fix run `go mod tidy` by @giautm in https://github.com//pull/1736 * cmd/atlas: initial support for external schema data sources by @a8m in https://github.com//pull/1737 * fix/event-update by @dimagreat in https://github.com//pull/1739 * Spelling by @jsoref in https://github.com//pull/1738 * doc/md: updated deployment guide with cloud by @rotemtam in https://github.com//pull/1741 * sql/migrate: do not error on json encode unknown revision type by @masseelch in https://github.com//pull/1746 * sql/mysql: improve foreign-keys inspection query by @a8m in https://github.com//pull/1748 * doc: change --log to --format by @a8m in https://github.com//pull/1751 * sql: modernize the way driver normalize schemas by @a8m in https://github.com//pull/1753 * sql/internal/sqlx: sort schema names before printing by @a8m in https://github.com//pull/1754 * sql/sqlx: move Charset/Collate to sqlx by @giautm in https://github.com//pull/1755 * schemahcl: add PrecisionTypeAttr and ScaleTypeAttr by @giautm in https://github.com//pull/1757 * sql/schema: added Scale attribute for TimeType by @giautm in https://github.com//pull/1756 * cmd/atlas: defer HCL normalization until ReadState is called by @a8m in https://github.com//pull/1758 * sql/sqlite: extract table options (without rowid, strict) from sql by @noamcattan in https://github.com//pull/1745 * doc: move guide links to cards by @a8m in https://github.com//pull/1762 * sql/sqlite: sqlspec for table options by @noamcattan in https://github.com//pull/1763 * cmd/atlas/internal: support writing to template directories by @a8m in https://github.com//pull/1764 * sql/postgres: support scanning prefixed sequences by @a8m in https://github.com//pull/1768 * cmd/atlas/internal/cmdapi: add flavor to version by @masseelch in https://github.com//pull/1770 * cmd/atlas/internal/cmdapi: flavor as build flag by @masseelch in https://github.com//pull/1772 * sql/sqlite: migrate table options by @noamcattan in https://github.com//pull/1769 * sql/sqlite: table options diff by @noamcattan in https://github.com//pull/1773 * sql/postgres: add migrate change stubs by @a8m in https://github.com//pull/1774 * sql/postgres: fix broken tests in internal repo by @a8m in https://github.com//pull/1777 * ci: run revisions test only on schema change by @masseelch in https://github.com//pull/1778 * web/inspect-visualize by @dimagreat in https://github.com//pull/1779 * internal/integration: add test script for sqlite table options by @noamcattan in https://github.com//pull/1784 * sql/postgres: handle enums as top-level objects by @a8m in https://github.com//pull/1787 * sql/postgres: support diffing objects by @a8m in https://github.com//pull/1789 * sql/mysql: support reordering tidb changes by their deps by @a8m in https://github.com//pull/1792 * sql/postgres: remove views inspection from tests by @a8m in https://github.com//pull/1793 * doc/md: updated gorm guide by @rotemtam in https://github.com//pull/1795 * doc/website/blog: external schemas blog by @rotemtam in https://github.com//pull/1799 * doc: initial changes to atlas schema options by @a8m in https://github.com//pull/1800 * sql/mssql: initial package to resolve import doesn't exist by @giautm in https://github.com//pull/1802 * cmd/atlas/internal/cmdapi: remove dead code and export log colors by @masseelch in https://github.com//pull/1804 * ci: set ENV for test-script job by @giautm in https://github.com//pull/1808 * cmd/atlas/internal: ensure dev-url is required in statereader by @a8m in https://github.com//pull/1810 * doc/md: argo cd guide by @rotemtam in https://github.com//pull/1807 * doc: add external schema to sidebar by @a8m in https://github.com//pull/1809 * schemahcl: count nested locals as edges when traversing references by @a8m in https://github.com//pull/1811 * schemahcl: skip evaluating non-referenced data-source by @a8m in https://github.com//pull/1812 * internal/integration: skip inspecting views on integration tests by @a8m in https://github.com//pull/1813 * doc/md/integrations: operator support versioned migration by @datdao in https://github.com//pull/1749 * sql/sqlspec: marshal view dependencies by @a8m in https://github.com//pull/1814 * doc/website/blog: announcing the atlas operator versioned flow by @rotemtam in https://github.com//pull/1815 * sql/postgres: unmarshal views with their dependencies by @a8m in https://github.com//pull/1816 * schemahcl: fix panic in Type method by @ronenlu in https://github.com//pull/1817 * doc: replace mascot by @a8m in https://github.com//pull/1818 * cmd/atlas: create context per flavor by @masseelch in https://github.com//pull/1821 * website: replace favicon by @a8m in https://github.com//pull/1822 * cmd/atlas: spin up a dev-database only if the target requires it by @a8m in https://github.com//pull/1823 * cmd/atlas/internal: txmode for schema apply by @a8m in https://github.com//pull/1824 * doc/md: cloud docs by @rotemtam in https://github.com//pull/1826 * cmd/atlas/internal/cmdapi: allow to run cmd in test with context by @masseelch in https://github.com//pull/1827 * sql/postgres: support schema comments by @a8m in https://github.com//pull/1828 * doc: add links to schema pages by @a8m in https://github.com//pull/1829 * website: getting started doc by @a8m in https://github.com//pull/1...v0.12.0
🌟 Show your support for Atlas by starring our repository or tweeting about this release. 🌟
We are excited to announce the release of Atlas v0.12.0, which includes bug fixes, extensive enhancements to the database drivers, and introduces key new features in the Atlas Cloud. Read the announcement blog post
Highlights
- We have added support for importing and running migration linting on GitHub PRs for external migration
formats, such as Flyway and golang-migrate. - Atlas now supports reading your migration directory directly from your Atlas Cloud account.
This eliminates the need for users to build their Docker images with the directory content and
makes running schema migrations in production much easier. - By connecting Atlas CLI to Atlas Cloud, migration runs will be recorded in the cloud account, making it easier to monitor
and troubleshoot executed migrations. - A new Slack integration is now available for Community Plan accounts. Organizations that connect their migration directories to
the cloud can receive notifications to Slack channels when the schemas are updated or deployed, among
other events. - A new look has been given to the CI report page. It will be enhanced with additional features in the next version.
Quick installation
macOS + Linux:
curl -sSf https://atlasgo.sh | sh
Homebrew:
brew install ariga/tap/atlas
Docker:
docker pull arigaio/atlas
Windows
What's Changed
Commits
- doc/website/blog: announcing v0.11.0 by @rotemtam in #1637
- doc/website/blog: update kubernetes blogpost by @hilakashai in #1639
- doc/website: updating banner announcing_v0.11.0 by @shani-a in #1640
- cmd/atlas: fallback to 'default' project name if was not provided by @a8m in #1638
- .github: remove caching of go dependencies as it done by go-setup action v4 by @ronenlu in #1641
- cmd/atlas: log but not fail in case of reporting errors by @a8m in #1645
- cmd/atlas: add command logs to report by @a8m in #1646
- sql/sqltool: wrap flyway dir with fs by @datdao in #1642
- add sh code by @dimagreat in #1647
- sql/mysql: support inspecting table storage engines by @a8m in #1650
- sql/sqltool: wrap golang-migrate dir with fs by @datdao in #1652
- sql/mysql: print non-default storage engines by @a8m in #1655
- doc: update discord link in getting-started by @shaharma in #1656
- doc/website: add shani-a to authors by @shani-a in #1657
- cmd/atlas: add report migration set by @a8m in #1658
- sql/sqltool: add Path() for Golang migrate and Flyway by @giautm in #1660
- sql/mysql: support unmarshal the engine attribute by @a8m in #1662
- sql/mysql: append non-default storage engines to migration plan by @a8m in #1663
- web/fix-typo by @dimagreat in #1661
- sql/mysql: support diffing table attributes by @a8m in #1665
- doc/website: add analyzers to sidebar by @hilakashai in #1666
- sql/mysql: support alter engine in table modification by @a8m in #1667
- doc/website/blog: vscode extension by @datdao in #1664
- doc: add mysql/maria storage engine to sql page by @a8m in #1668
- cmd/atlas: only evaluate necessary blocks in atlas.hcl by @a8m in #1670
- cmd/atlas: respect config files passed with -c by @a8m in #1672
- cmd/atlas/internal/cmdext: use dev-database schema in ent loader as default schema by @a8m in #1674
- PostGIS support by @crossworth in #1601
- doc/website: djangobiz blogpost by @shani-a in #1669
- cmd/atlas: remove dot from atlas log by @a8m in #1676
- sql/postgres: order foreign-key columns by ordinal position by @a8m in #1677
- doc/md: document atlas operator with config map by @rotemtam in #1679
- sql/migrate: remove Validate hack by @giautm in #1465
- sql/sqlite: inspect: default type to blob by @masseelch in #1680
- cmd/atlas: report migrations that were failed early by @a8m in #1685
- doc/md: remove duplicate
MF101
by @giautm in #1686 - cmd/atlas: support for getenv function in atlas.hcl config by @a8m in #1687
- sql/sqltool: fix flyway invalid order migrations by @datdao in #1690
- sql/sqltool: compare flyway version as semver by @datdao in #1691
- doc: add remote_dir as data source by @a8m in #1692
- doc/website: add documentation about slack integration by @noamcattan in #1693
- newsletter-docs by @dimagreat in #1689
- sql/migrate: fixed archive logic on sum file by @giautm in #1697
- atlas/cmdapi: fixed dir name with flash by @giautm in #1698
- atlas/cmdapi: use full path for directory name by @giautm in #1701
- .github: split into oss and ent distribution by @masseelch in #1704
- blog: announce version v0.12 by @a8m in #1699
- doc/website: adding events by @rotemtam in #1705
- doc/website: update events by @dimagreat in #1706
New Contributors
Full Changelog: v0.11.0...v0.12.0
v0.11.0
We are excited to share the v0.11.0 release! 🎊
We are excited to announce the release of Atlas v0.11.0, which introduces the Atlas Kubernetes Operator. This release is a major milestone in our mission to make Atlas the most robust and modern way to manage your database schemas. With the Atlas Kubernetes Operator, you can now manage your database schemas with Atlas from within your Kubernetes cluster.
In this release, we also introduce a new concept to Atlas: "Diff Policies" - which allows you to customize the way Atlas plans database migrations for you. This concept is directly related to the Kubernetes Operator, and we will explain how below.
Read the announcement blog post
Quick installation
macOS + Linux:
curl -sSf https://atlasgo.sh | sh
Homebrew:
brew install ariga/tap/atlas
Docker:
docker pull arigaio/atlas
Windows
What's Changed
Commits
- doc/website/blog: troublshooting migrations by @rotemtam in #1578
- schema/inspect: support inspect for non-database resource by @giautm in #1586
- feature/atlas-cloud-link by @dimagreat in #1564
- cmd/atlas: allow url in hcl for src by @a8m in #1589
- sql/mysql: support opening driver using unix sockets by @a8m in #1590
- doc/website/blog: broken link on old post by @rotemtam in #1580
- sql/migrate: increase error verbosity by @masseelch in #1588
- cmd/atlas: allow attaching identifiers to revisions-table by @a8m in #1593
- cmd/atlas: add cloudapi deploying reporting by @a8m in #1594
- doc/website/blog: terraform v0.5.0 announcement by @rotemtam in #1598
- cmd/atlas: report tx creation failures by @a8m in #1599
- cmd/atlas/internal: cloud renames by @a8m in #1600
- cmd/atlas: attach atlas init block info to project config by @a8m in #1602
- cmd/atlas/internal: replace uuid with string for target ids by @a8m in #1603
- cmd/atlas/internal: rough deployment implementation by @a8m in #1605
- web/icon-update by @dimagreat in #1604
- sql/postgres: drop foreign-keys before dropping tables by @a8m in #1609
- cmd/atlas: report no pending files by @a8m in #1610
- doc/md: adding a guide on deploying migrations to cloud sq… by @tonykurya in #1607
- doc/website - add Atals cloud to atlas website footer by @shani-a in #1615
- doc/md: adding cloud sql guide to sidebar and index by @rotemtam in #1616
- sql/schema: add diff options to allow skip changes by their type by @a8m in #1617
- cmd/atlas: add initial support for diff policy in schema apply by @a8m in #1619
- cmd/atlas: add diff policy to schema diff command by @a8m in #1620
- cmd/atlas: add diff policy to migrate diff command by @a8m in #1621
- cmd/atlas: support passing diff options to ent differ by @a8m in #1623
- doc/website: add "cloud" to atlas website header by @shani-a in #1624
- sql/postgres: expose basic diff policy for concurrent_index creation/deletion by @a8m in #1627
- cmd/atlas/lint: add statement position to FileError, if known by @a8m in #1628
- cmd/atlas: set schema scope for ext loaders by @a8m in #1630
- web/projects-num-update by @dimagreat in #1626
- cmd/atlas/internal/cmdapi: reject schema mismatch between schema bound connection and hcl file by @rotemtam in #1632
- doc/md/integrations: kubernetes operator docs by @rotemtam in #1633
- doc: add schema diff policy by @a8m in #1635
- cmd/atlas: update ariga.io/atlas by @a8m in #1636
New Contributors
- @tonykurya made their first contribution in #1607
Full Changelog: v0.10.1...v0.11.0
v0.10.1
We are excited to share the v0.10.1 release! 🎊
It's been only three weeks since the release of v0.10.0, but we are already back with more exciting features we want to share with you. Besides some more improvements and bug fixes, we added two new SQL analyzers to Atlas and the capability to have Atlas Cloud pick up a linting configuration file from your repository.
Read the announcement blogpost
Quick installation
macOS + Linux:
curl -sSf https://atlasgo.sh | sh
Homebrew:
brew install ariga/tap/atlas
Docker:
docker pull arigaio/atlas
Windows
What's Changed
Commits
New Contributors
- @solomonme made their first contribution in #1562
- @imraan-go made their first contribution in #1567
- @noamcattan made their first contribution in #1509
Full Changelog: v0.10.0...v0.10.1
v0.10.0
We are excited to share the v0.10.0 release! 🎊
It's been two months since v0.9.0, and it's time to release a new version and share with you what we've accomplished so far, as well as what's to come in the upcoming weeks. Besides the many improvements and bug fixes in v0.10.0, we added two major integrations to Atlas that we want to share with you: schema loaders and cloud-based migration linting.
Read the full announcement on Atlas blog
Quick installation
macOS + Linux:
curl -sSf https://atlasgo.sh | sh
Homebrew:
brew install ariga/tap/atlas
Docker:
docker pull arigaio/atlas