{"record":{"id":"2d677dd8c68cda3e","repo":"hasura/graphql-engine","slug":"database-driver-unknown-driver-v","errorCode":null,"errorMessage":"database driver: unknown driver %v","messagePattern":"database driver: unknown driver (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cli/migrate/database/driver.go","lineNumber":141,"sourceCode":"\n\tu, err := nurl.Parse(url)\n\tif err != nil {\n\t\tlog.Debug(err)\n\n\t\treturn nil, errors.E(op, err)\n\t}\n\n\tdriversMu.RLock()\n\n\tif u.Scheme == \"\" {\n\t\treturn nil, errors.E(op, stderrors.New(\"database driver: invalid URL scheme\"))\n\t}\n\n\tdriversMu.RUnlock()\n\n\td, ok := drivers[u.Scheme]\n\tif !ok {\n\t\treturn nil, errors.E(op, fmt.Errorf(\"database driver: unknown driver %v\", u.Scheme))\n\t}\n\n\tif logger == nil {\n\t\tlogger = log.New()\n\t}\n\n\tdriver, err := d.Open(url, isCMD, logger, hasuraOpts)\n\tif err != nil {\n\t\treturn driver, errors.E(op, err)\n\t}\n\n\treturn driver, nil\n}\n\nfunc Register(name string, driver Driver) {\n\tdriversMu.Lock()\n\tdefer driversMu.Unlock()\n","sourceCodeStart":123,"sourceCodeEnd":159,"githubUrl":"https://github.com/hasura/graphql-engine/blob/724551b9ae87845594ef0408cff0e50eb6c90dc5/cli/migrate/database/driver.go#L123-L159","documentation":"migrate/database.Open returns this when the URL scheme of the database URL does not match any registered driver. The registry (drivers map) is keyed by scheme such as 'hasura' or 'postgres'.","triggerScenarios":"Calling database.Open with a URL whose scheme is not registered, e.g. mysql://... when only hasura/postgres drivers are compiled in, or a mistyped scheme.","commonSituations":"Passing a generic database URL instead of a Hasura endpoint, typo in the scheme, or using a driver package that was never imported (driver registration happens in init).","solutions":["Use a supported scheme, typically the hasura:// endpoint for CLI migrations","Fix typos in the database URL scheme","Ensure the driver package providing the scheme is imported/registered before Open"],"exampleFix":"// before\nurl := \"mysql://user:pass@host/db\"\ndb, err := database.Open(url, false)\n// after\nurl := \"hasura://localhost:8080\"\ndb, err := database.Open(url, false)","handlingStrategy":"validation","validationCode":"u, err := url.Parse(dbURL)\nif err != nil { return err }\nswitch u.Scheme {\ncase \"hasura\", \"postgres\", \"postgresql\":\ndefault:\n    return fmt.Errorf(\"unsupported scheme %q\", u.Scheme)\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always construct database URLs with a registered driver scheme","Import driver packages for side-effect registration before calling Open"],"tags":["hasura","driver","url-scheme","migration"],"backgroundTag":"unsupported-database-driver","analyzedSha":"724551b9ae87845594ef0408cff0e50eb6c90dc5","analyzedAt":"2026-08-28T07:32:55.105Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}