Schema validation runs automatically when using CLI commands like viborm push or viborm migrate. You don't need to call validation manually unless you want to validate at application startup.
Returns a validation result with all errors and warnings:
import { validateSchema } from "viborm";import * as schema from "./schema";const result = validateSchema(schema);if (!result.valid) { for (const error of result.errors) { console.log(`[${error.code}] ${error.message}`); }}// Also check warningsfor (const warning of result.warnings) { console.log(`[${warning.code}] Warning: ${warning.message}`);}
import { SchemaValidator, fkRules, relationRules } from "viborm";import * as schema from "./schema";const validator = new SchemaValidator() .registerAll(schema);// Validate with all rulesconst result = validator.validate();// Or validate with specific rules onlyconst fkResult = validator.validate([...fkRules, ...relationRules]);
import { validateSchema } from "viborm";import * as schema from "./schema";const result = validateSchema(schema);// Example errors:// [F002] Model 'user' must have exactly one ID field// [FK003] Post.authorId: FK type 'int' doesn't match reference type 'string'// [RA004] Comment.postId: SET NULL requires nullable FK field