hasura/graphql-engine · error
migrations on database '%s' of kind '%s' is not supported
Error message
migrations on database '%s' of kind '%s' is not supported
What it means
The `hasura migrate` command validates that the target database kind supports migrations (migrate.IsMigrationsSupported). Only certain source kinds (e.g. postgres, mssql, bigquery, etc.) support the migration subsystem; others are rejected before any API call is made.
Source
Thrown at cli/commands/migrate.go:185
if ec.Config.Version < cli.V3 {
return nil
}
err = databaseChooser(ec)
if err != nil {
return errors.E(op, err)
}
err = validateSourceInfo(ec)
if err != nil {
return errors.E(op, err)
}
// check if migration ops are supported for the database
if !migrate.IsMigrationsSupported(ec.Source.Kind) {
return errors.E(
op,
fmt.Errorf(
"migrations on database '%s' of kind '%s' is not supported",
ec.Source.Name,
ec.Source.Kind,
),
)
}
return nil
}
func validateConfigV3FlagsWithAll(cmd *cobra.Command, ec *cli.ExecutionContext) error {
var op errors.Op = "commands.validateConfigV3FlagsWithAll"
err := validateConfigV3Prechecks(cmd, ec)
if err != nil {
return errors.E(op, err)
}
View on GitHub (pinned to 724551b9ae)
Solutions
- Check ec.Source.Kind printed in the message and confirm it matches a migration-supported kind (usually postgres)
- Track/skip migrations for non-supported databases and manage their schema directly
- Upgrade the CLI — newer versions may add support for the kind
- Run `hasura migrate status` per-database to identify which source is unsupported
Defensive patterns
Strategy: validation
Validate before calling
supported := map[string]bool{"postgres":true /* per CLI version */}
if !supported[kind] { /* skip migrations for this source */ } Prevention
- Check `hasura migrate status --database-name X` before scripting migrate commands for new source kinds
- Pin CLI version and review its supported-kind list
When it happens
Trigger: Running migrate subcommands against a metadata source whose kind is not in the supported list, e.g. a citus, mysql, or custom_kind source configured in metadata.
Common situations: Adding a non-supported database via metadata and then trying `hasura migrate apply`; upgrading CLI to a version with a narrower supported-kind list; typos in the source kind in config/metadata.
Related errors
- unable to remove versions from database: %w
- getting list of migrations to move: %w
- moving migrations to target database directory: %w
- removing up original migrations: %w
- moving %s to %s : %w
AI-assisted analysis of hasura/graphql-engine@724551b9ae (2026-08-28).
Data as JSON: /api/errors/87ee436ac2f2bc99.
Report an issue: GitHub.