ProtecteddbLazy-initialized database provider. Uses the same factory pattern as ManageMetadataBase and SQLCodeGenBase to resolve the correct provider for the configured database platform.
Lookup goes through MJGlobal.ClassFactory keyed by the platform string,
which matches the @RegisterClass(CodeGenDatabaseProvider, '<platform>')
decorators on the concrete providers ('sqlserver', 'postgresql').
Mismatched keys silently fall back to the abstract base class — fail loud
with an explicit error so a misconfigured platform doesn't ship as a
runtime breakage in dialect-specific methods.
This method will build a two dimensional array of EntityInfo objects. The first dimension of the array is the level of the entity in the dependency tree. The second dimension of the array is the entities at that level. The entities at each level are NOT dependent on any other entity in that level or any level below it. This method uses the foreign key information witin the Entity Fields array to find these dependencies. self-referencing foreign keys are ignored.
Use ExecuteSQLFiles.
Executes every file, in order, even after one fails, so a single run surfaces every broken object instead of stopping at the first (each provider logs its own failures). Returns false when any file failed.
Use ExecuteSQLScript.
Use GetDBObjectFileName.
Returns a file name for a given DB Object given a type, schema and object name.
The basic format is to have a directory for each schema, and within each directory
the file name for each object has this format:
OptionalexcludeEntities: string[]OptionalexcludeEntities: string[]Refreshes an entity's base view so its cached column list matches the objects it selects from. For a LAYERED entity the CodeGen-owned inner view is refreshed first and the application-owned outer view second: the outer view selects from the inner one, so refreshing it first would bind it to the inner view's stale column list (#4336). The outer refresh is skipped while the outer view does not exist yet (the bootstrap pass of a newly layered entity). Returns false when any refresh failed.
Base class for SQL Utility functions, you can sub-class this class to create your own SQL Utility functions/override existing functionality.