/** * Auto builds the database. Must manually set AuditEvent first to avoid issues building the AuditEvent * table. This is because AuditEvent is specially optimized during this build process to reduce how * long this takes to do. */ public static function autoBuildDatabase(&$messageLogger) { $rootModels = array(); $rootModels[] = 'AuditEvent'; foreach (Module::getModuleObjects() as $module) { $moduleAndDependenciesRootModelNames = $module->getRootModelNamesIncludingDependencies(); $rootModels = array_merge($rootModels, array_diff($moduleAndDependenciesRootModelNames, $rootModels)); } ZurmoDatabaseCompatibilityUtil::createStoredFunctionsAndProcedures(); RedBeanDatabaseBuilderUtil::autoBuildModels($rootModels, $messageLogger); ZurmoDatabaseCompatibilityUtil::createIndexes(); }