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/1831 * sql: remove mssql stubs until it is released by @a8m in https://github.com//pull/1833 * sql/postgres: diff views stubs by @a8m in https://github.com//pull/1832 * schemahcl: add helper/debug print function by @a8m in https://github.com//pull/1834 * doc/website: update upcoming events by @shani-a in https://github.com//pull/1835 * sql/internal/sqlx: oss stubs by @a8m in https://github.com//pull/1836 * sql/postgres: move resource drop to the end of the planning by @a8m in https://github.com//pull/1837 * sql/postgres: views should be created with new schemas by @a8m in https://github.com//pull/1838 * sql/sqlite: normalize generated index names before comparing loaded schemas by @a8m in https://github.com//pull/1839 * schemahcl: allow reference blocks in template expressions by @a8m in https://github.com//pull/1840 * internal/integration: support running testsciprt in ent builds by @a8m in https://github.com//pull/1844 * internal/integration: add build flags to cli tests by @masseelch in https://github.com//pull/1845 * internal/integration: build testscript cli once by @masseelch in https://github.com//pull/1846 * doc/md/guides: automatic migration planning for beego by @rotemtam in https://github.com//pull/1843 * sql/mysql: implement unmarshal spec for views by @a8m in https://github.com//pull/1847 * sql/sqlite: implement unmarshal spec for views by @a8m in https://github.com//pull/1848 * cmd/atlas/cmdext: allow using empty schema hcl files by @a8m in https://github.com//pull/1849 * cmd/atlas/internal/cmdapi: small comment cleanup by @masseelch in https://github.com//pull/1850 * cmd/atlas: support for quoted identifiers in concurrent index creation by @a8m in https://github.com//pull/1852 * cmd/atlas: create state dir if not exists by @rotemtam in https://github.com//pull/1853 * sql/mysql: add stubs for views inspection by @a8m in https://github.com//pull/1854 * internal/integration: exclude view inspection in community builds by @a8m in https://github.com//pull/1855 * website: update favicon by @a8m in https://github.com//pull/1856 * cmd/md/components: update manual installation instructions by @masseelch in https://github.com//pull/1857 * sql/postgres: skip comparing default public schema comments by @a8m in https://github.com//pull/1863 * sql/sqlx: add TableResource and Quote helpers by @giautm in https://github.com//pull/1861 * sql/sqlx: quote Ident opening/closing by @giautm in https://github.com//pull/1864 * internal/integration: add test case for migrate diff against ent/schema by @a8m in https://github.com//pull/1866 * doc/website: remove hashitalks + update k8s event link by @shani-a in https://github.com//pull/1865 * integration: add create command for testscript by @giautm in https://github.com//pull/1867 * integration: use testing.T from Env to add Cleanup method by @giautm in https://github.com//pull/1869 * sql/internal/specutil: support marshaling qualified views by @a8m in https://github.com//pull/1871 * sql/postgres: add test case for qualified depends_on references by @a8m in https://github.com//pull/1872 * sql/mysql: store schema name in driver by @a8m in https://github.com//pull/1873 * sql: share the same conn between schema interfaces by @a8m in https://github.com//pull/1875 * atlas/src: update k8s webinar date by @shani-a in https://github.com//pull/1874 * website: k8s webinar announcement bar by @rotemtam in https://github.com//pull/1876 * web/projects-amount-prop by @dimagreat in https://github.com//pull/1868 * schemahcl: add tf function for simple reading files by @a8m in https://github.com//pull/1878 * doc/website/blog: bridging the gap blogpost by @rotemtam in https://github.com//pull/1879 * doc/guides: template directories by @a8m in https://github.com//pull/1882 * chore: goimports -w . by @sashamelentyev in https://github.com//pull/1880 * sql/mysql/mysqlversion: update information_schema charset/collate info by @a8m in https://github.com//pull/1883 * doc/website: update utm tags to k8s event by @shani-a in https://github.com//pull/1884 * sql/mysql/internal/mysqlversion: fetch collation/collate defaults from information_schema if possible by @a8m in https://github.com//pull/1885 * sql/sqlite: add stubs for views operations by @a8m in https://github.com//pull/1886 * sql/internal/sqlx: shared view trim function by @a8m in https://github.com//pull/1888 * internal/migrate: fixed path on Windows by @giautm in https://github.com//pull/1889 * sql/sqlite: delete views in snapshot by @a8m in https://github.com//pull/1890 * sql/mysql: inspect fulltext index parsers by @a8m in https://github.com//pull/1893 * doc/hcl: add fulltext index parser option by @a8m in https://github.com//pull/1895 * cmd/atlas/internal/cmdapi: allow extension of schema command by @masseelch in https://github.com//pull/1897 * sql: stubs and codec for view check options by @a8m in https://github.com//pull/1898 * cmd/atlas: apply only revisions-table changes on automatic migration by @a8m in https://github.com//pull/1900 * doc: add ORM to list of desired schemas by @a8m in https://github.com//pull/1901 * cmd/atlas: export marshalSQL function by @ronenlu in https://github.com//pull/1903 * cmd/atlas: update ariga.io/atlas by @a8m in https://github.com//pull/1902 * cmd/atlas/internal: allow extension of migrate command by @ronenlu in https://github.com//pull/1904 * Revert "cmd/atlas/internal: allow extension of migrate command (#1904)" by @ronenlu in https://github.com//pull/1905 * cmd/atlas/internal: add function to return schema cmd with flags by @ronenlu in https://github.com//pull/1906 * cmd/atlas: deep copy flags when switching envs by @a8m in https://github.com//pull/1907 * cmd/atlas: go work sync by @masseelch in https://github.com//pull/1908 * atlas/cmdapi: decouple EntRevision from cmdapi by @giautm in https://github.com//pull/1911 * schema: support UnderlyingExpr expr by @giautm in https://github.com//pull/1910 * schemahcl: merge options and constructor files by @a8m in https://github.com//pull/1912 * cmdapi: use migrate.ErrRevisionNotExist to check empty version by @giautm in https://github.com//pull/1913 * migrate: use RRW from the driver if it supports by @giautm in https://github.com//pull/1915 * cmd/atlas/internal: export marshalSQL function for schema diff by @ronenlu in https://github.com//pull/1916 * cmd/atlas/internal: add current and desire realms to SchemaDiff data by @ronenlu in https://github.com//pull/1917 * doc/md/integrations: update k8s operator docs by @rotemtam in https://github.com//pull/1918 * docs/md: updating github actions page by @rotemtam in https://github.com//pull/1919 * doc/md: update golang migrate guide by @rotemtam in https://github.com//pull/1921 * schemahcl: add basic schema validator option by @a8m in https://github.com//pull/1923 * schemahcl: validate body in schema validator by @a8m in https://github.com//pull/1925 * doc/md/cloud: update the images for creating-bots doc by @solomonme in https://github.com//pull/1926 * sql/mysql: minor changes to allow extending spec options by @a8m in https://github.com//pull/1927 * internal/integration: set homedir to workdir for script tests by @noamcattan in https://github.com//pull/1928 * sql: allow extending sqlite and postgres schema by @a8m in https://github.com//pull/1929 * internal/integration: set homedir from env for script tests by @noamcattan in https://github.com//pull/1930 * cmd/atlas: fix migrate test by @noamcattan in https://github.com//pull/1931 * cmd/atlas: fix migrate test by @noamcattan in https://github.com//pull/1932 * doc/website: remove k8s webinar from upcoming event - Atlas website by @shani-a in https://github.com//pull/1933 * cmd/atlas: replace promptui to one without datarace by @a8m in https://github.com//pull/1934 * doc/md: small typo in projects docs by @caioariede in https://github.com//pull/1936 * cmd/atlas: do not pass error to inspect template by @a8m in https://github.com//pull/1938 * doc/website/blog: release v0.13.0 by @rotemtam in https://github.com//pull/1941 * doc/md: update from template by @rotemtam in https://github.com//pull/1943 * sql/postgres: support the NULLS [NOT] DISTINCT index attribute by @a8m in https://github.com//pull/1942 * Remove executable bits in `os.WriteFile` by @ramikg in https://github.com//pull/1944 * cmd/atlas/internal: export cloud header setter by @a8m in https://github.com//pull/1946 * doc: update opt-in to beta drivers by @a8m in https://github.com//pull/1948 * doc/md: update community install guide by @giautm in https://github.com//pull/1947 * doc/md: add custom dev url to k8s doc by @rotemtam in https://github.com//pull/1949 * cmd/atlas: update ariga.io/atlas by @a8m in https://github.com//pull/1950 * doc: add view to hcl schema by @a8m in https://github.com//pull/1935New Contributors
- @silasdavis made their first contribution in #1712
- @jsoref made their first contribution in #1738
- @caioariede made their first contribution in #1936
- @ramikg made their first contribution in #1944
Full Changelog: v0.12.0...v0.13.0