{"id":"c708b319da397a87","repo":"drizzle-team/drizzle-orm","slug":"version-should-be-in-range-1-latestversion","errorCode":null,"errorMessage":"Version should be in range [1, ${latestVersion}].","messagePattern":"Version should be in range \\[1, (.+?)\\]\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"drizzle-seed/src/services/SeedService.ts","lineNumber":46,"sourceCode":"\t// there is no max parameters number in mysql, so you can increase mysqlMaxParametersNumber if it's needed.\n\tprivate mysqlMaxParametersNumber = 100000;\n\t//  SQLITE_MAX_VARIABLE_NUMBER, which by default equals to 999 for SQLite versions prior to 3.32.0 (2020-05-22) or 32766 for SQLite versions after 3.32.0.\n\tprivate sqliteMaxParametersNumber = 32766;\n\tprivate version?: number;\n\n\tgeneratePossibleGenerators = (\n\t\tconnectionType: 'postgresql' | 'mysql' | 'sqlite',\n\t\ttables: Table[],\n\t\trelations: (Relation & { isCyclic: boolean })[],\n\t\trefinements?: RefinementsType,\n\t\toptions?: { count?: number; seed?: number; version?: number },\n\t) => {\n\t\tlet columnPossibleGenerator: Prettify<GeneratePossibleGeneratorsColumnType>;\n\t\tlet tablePossibleGenerators: Prettify<GeneratePossibleGeneratorsTableType>;\n\t\tconst customSeed = options?.seed === undefined ? 0 : options.seed;\n\t\tthis.version = options?.version === undefined ? latestVersion : options.version;\n\t\tif (Number.isNaN(this.version) || this.version < 1 || this.version > latestVersion) {\n\t\t\tthrow new Error(`Version should be in range [1, ${latestVersion}].`);\n\t\t}\n\n\t\t// sorting table in order which they will be filled up (tables with foreign keys case)\n\t\tconst { tablesInOutRelations } = this.getInfoFromRelations(relations);\n\t\tconst orderedTablesNames = this.getOrderedTablesList(tablesInOutRelations);\n\t\ttables = tables.sort((table1, table2) => {\n\t\t\tconst rel = relations.find((rel) => rel.table === table1.name && rel.refTable === table2.name);\n\n\t\t\tif (rel?.isCyclic === true) {\n\t\t\t\tconst reverseRel = relations.find((rel) => rel.table === table2.name && rel.refTable === table1.name);\n\t\t\t\treturn this.cyclicTablesCompare(table1, table2, rel, reverseRel);\n\t\t\t}\n\n\t\t\tconst table1Order = orderedTablesNames.indexOf(\n\t\t\t\t\ttable1.name,\n\t\t\t\t),\n\t\t\t\ttable2Order = orderedTablesNames.indexOf(\n\t\t\t\t\ttable2.name,","sourceCodeStart":28,"sourceCodeEnd":64,"githubUrl":"https://github.com/drizzle-team/drizzle-orm/blob/b7862528fd8fc39bc2653a6c18dad7c1f4e68d10/drizzle-seed/src/services/SeedService.ts#L28-L64","documentation":"generatePossibleGenerators accepts an options.version that selects which generator implementation revision to use. The valid range is [1, latestVersion] where latestVersion is currently 2. Passing NaN, zero, a negative number, or a version above latestVersion causes an immediate throw.","triggerScenarios":"Calling seed() with options.version set to 0, 3+, NaN, or a value from an unconfigured env variable (e.g. Number(process.env.SEED_VERSION) when the var is unset yields NaN).","commonSituations":"Upgrading drizzle-seed and accidentally passing an old/new version integer; reading version from an environment variable that is unset or mistyped; hard-coding a version that was removed in a newer release.","solutions":["Set options.version to 1 or 2 (or omit it entirely to default to latestVersion).","If the version comes from an env var, validate/coerce it before passing: const v = Number(process.env.SEED_VERSION); options.version = Number.isNaN(v) ? undefined : v.","Check the installed drizzle-seed version's apiVersion.ts for the current latestVersion before pinning."],"exampleFix":"// before\nawait seed(db, { schema }, { version: 3 });\n// after\nawait seed(db, { schema }, { version: 2 }); // or omit version entirely","handlingStrategy":"validation","validationCode":"import { latestVersion } from 'drizzle-seed/services/apiVersion'; // or hardcode 2\nfunction isValidVersion(v: unknown): v is number {\n  return typeof v === 'number' && !Number.isNaN(v) && v >= 1 && v <= 2;\n}\n// Usage:\nconst version = isValidVersion(options.version) ? options.version : undefined; // undefined => defaults to latest","typeGuard":"function isSeedVersion(v: unknown): v is number {\n  return typeof v === 'number' && Number.isInteger(v) && v >= 1 && v <= 2;\n}","tryCatchPattern":null,"preventionTips":["Omit options.version unless you need a specific revision.","Validate env-sourced version numbers with Number.isNaN before passing.","After upgrading drizzle-seed, re-check latestVersion in apiVersion.ts."],"tags":["version","api-version","config"],"analyzedSha":"b7862528fd8fc39bc2653a6c18dad7c1f4e68d10","analyzedAt":"2026-08-03T18:11:14.318Z","schemaVersion":2}