Generate an SQL Schema from a Migrations Directory
Question
How to generate an SQL schema file from an existing migrations directory to quickly set up a database for integration tests?
How to generate an SQL schema file from an existing migrations directory to quickly set up a database for integration tests?
An AWS RDS MySQL schema creates IAM-authenticated users, for example:
CREATE USER 'app_iam' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';
Running atlas migrate diff (or any command that uses the dev-database) against a standard
mysql Docker image fails, because that plugin exists only on RDS:
Error: failed to run `atlas migrate diff`: Error: sql/migrate: read migration directory state:
sql/migrate: executing statement "CREATE USER 'app_iam' IDENTIFIED WITH AWSAuthenticationPlugin AS 'RDS';"
from version "20260602081826": Error 1524 (HY000): Plugin 'AWSAuthenticationPlugin' is not loaded
Must the dev-url point at a real RDS instance, or can the dev-database run locally in Docker?
Schemas that use postgres_fdw reference an upstream PostgreSQL server (SERVER, USER MAPPING,
FOREIGN TABLE). That upstream server is often reachable only from inside the VPC of environments
such as staging or production: local workstations and CI runners have no network path to it.
Working with such schemas in Atlas, whether for schema planning, schema testing, or simulating the real setup locally, triggers an FDW connection attempt on the dev-database that fails with errors such as:
08001 could not connect to server "upstream_db"
A common case is a materialized view that selects from a foreign table, which opens the FDW connection
at CREATE time. What is the recommended pattern for stubbing the foreign server so that schema design,
plan, lint, and diff run hermetically against the dev-database?
How do I fix the ModifySchema is not allowed when migration plan is scoped to one schema error?
When I have the same schema deployed across multiple database servers, do I need to plan and approve migrations for each database separately?
Why does Atlas report a MODIFY COLUMN drift on a generated column in MySQL or MariaDB where the only difference is a character-set introducer, such as _latin1'-' on one side and _utf8mb4'-' on the other, even though I changed nothing?
How do I resolve MySQL Error 1049: Unknown database when connecting using a URL like: mysql://user:pass@host:port/<database_name>?
Error: mysql: query system variables: Error 1049 (42000): Unknown database '<database_name>'
What does this error mean, and how can I fix it?
How can I define functional indexes in MySQL using Atlas HCL syntax?
How do I configure Atlas to load the database schema from nested directories with HCL files?
/project
├── main.hcl
├── extensions
└── schemas
└── public
├── public.hcl
├── tables
│ ├── pets.hcl
│ ├── posts.hcl
│ ├── profiles.hcl
│ └── user_groups.hcl
├── functions/
└── types/
After upgrading Atlas, you might encounter an error stating "Feature X is no longer supported by this release."
For example:
Error: data.external_schema is no longer supported by this release.
This occurs when you install the community version of Atlas, which lacks some features available only in non-community builds.