{"record":{"id":"3bb91f0ee2ee9b0f","repo":"abpframework/abp","slug":"the-option-you-provided-for-database-management-sy","errorCode":null,"errorMessage":"The option you provided for Database Management System is invalid!","messagePattern":"The option you provided for Database Management System is invalid!","errorType":"exception","errorClass":"CliUsageException","httpStatus":null,"severity":"error","filePath":"framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs","lineNumber":634,"sourceCode":"            return DatabaseManagementSystem.NotSpecified;\n        }\n\n        switch (optionValue.ToLowerInvariant())\n        {\n            case \"sqlserver\":\n                return DatabaseManagementSystem.SQLServer;\n            case \"mysql\":\n                return DatabaseManagementSystem.MySQL;\n            case \"postgresql\":\n                return DatabaseManagementSystem.PostgreSQL;\n            case \"oracle-devart\":\n                return DatabaseManagementSystem.OracleDevart;\n            case \"sqlite\":\n                return DatabaseManagementSystem.SQLite;\n            case \"oracle\":\n                return DatabaseManagementSystem.Oracle;\n            default:\n                throw new CliUsageException(ExceptionMessageHelper.GetInvalidOptionExceptionMessage(\"Database Management System\"));\n        }\n    }\n\n    protected virtual MobileApp GetMobilePreference(CommandLineArgs commandLineArgs, string template)\n    {\n        var optionValue = commandLineArgs.Options.GetOrNull(Options.Mobile.Short, Options.Mobile.Long);\n\n        switch (optionValue)\n        {\n            case null:\n            case \"none\":\n                return MobileApp.None;\n            case \"react-native\" when template is AppProTemplate.TemplateName or MicroserviceProTemplate.TemplateName:\n                return MobileApp.ReactNative;\n            case \"maui\" when template is AppProTemplate.TemplateName or MicroserviceProTemplate.TemplateName:\n                return MobileApp.Maui;\n            default:\n                throw new CliUsageException(ExceptionMessageHelper.GetInvalidOptionExceptionMessage(\"Mobile App\"));","sourceCodeStart":616,"sourceCodeEnd":652,"githubUrl":"https://github.com/abpframework/abp/blob/7ed43b1931b9df46a50c0c59148a18645641d0df/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs#L616-L652","documentation":"Thrown by ProjectCreationCommandBase.GetDatabaseManagementSystem when the database management system option value does not match any of the switch cases: sqlserver, mysql, postgresql, oracle-devart, sqlite, oracle. The default case throws CliUsageException via ExceptionMessageHelper. This option controls the specific database engine, distinct from the provider type.","triggerScenarios":"Passing a --database-management-system (or equivalent) value not in the supported set. For example `-dms firebird` or `-dbms cassandra`. The switch falls to default.","commonSituations":"Developer passes an unsupported database engine, uses the wrong option name, or misspells a supported value. Confusion between abbreviated and full names (the switch expects lowercase exact strings like 'postgresql', not 'postgres').","solutions":["Use one of the supported values: sqlserver, mysql, postgresql, oracle, oracle-devart, or sqlite","Check spelling and casing — the switch uses lowercase exact matches (e.g., 'postgresql' not 'PostgreSQL')","Verify the option flag name matches what this ABP CLI version expects"],"exampleFix":"// before\nabp new MyProject --database-management-system postgres\n\n// after\nabp new MyProject --database-management-system postgresql","handlingStrategy":"validation","validationCode":"// Validate database management system before project creation\nvar validDbms = new HashSet<string>(StringComparer.OrdinalIgnoreCase)\n    { \"sqlserver\", \"mysql\", \"postgresql\", \"oracle-devart\", \"sqlite\", \"oracle\" };\nif (!validDbms.Contains(dbmsValue))\n{\n    Console.Error.WriteLine($\"Error: DBMS must be one of: {string.Join(\", \", validDbms)}\");\n    return;\n}","typeGuard":"// Type guard for valid DBMS values\nstatic bool IsValidDbms(string value) =>\n    value.ToLowerInvariant() is \"sqlserver\" or \"mysql\" or \"postgresql\"\n        or \"oracle-devart\" or \"sqlite\" or \"oracle\";","tryCatchPattern":"try\n{\n    await projectCreationCommand.ExecuteAsync(commandLineArgs);\n}\ncatch (CliUsageException ex) when (ex.Message.Contains(\"Database Management System is invalid\"))\n{\n    logger.LogError(\"Supported: sqlserver, mysql, postgresql, oracle, oracle-devart, sqlite\");\n}","preventionTips":["Use lowercase exact values: sqlserver, mysql, postgresql, oracle-devart, sqlite, oracle","Note 'postgresql' not 'postgres'; 'oracle-devart' for the Devart provider","This is distinct from the database provider (ef vs mongodb)"],"tags":["cli","abp-cli","invalid-option","project-creation","database"],"backgroundTag":null,"analyzedSha":"7ed43b1931b9df46a50c0c59148a18645641d0df","analyzedAt":"2026-08-13T16:26:11.351Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}