public static function autoBuildDatabase(&$messageLogger, $autoBuildTestModels = false) { ZurmoDatabaseCompatibilityUtil::createStoredFunctionsAndProcedures(); ZurmoDatabaseCompatibilityUtil::createActualPermissionsCacheTable(); ZurmoDatabaseCompatibilityUtil::createNamedSecurableActualPermissionsCacheTable(); ZurmoDatabaseCompatibilityUtil::createActualRightsCacheTable(); $messageLogger->addInfoMessage(Zurmo::t('InstallModule', 'Searching for models')); $rootModels = PathUtil::getAllCanHaveBeanModelClassNames(); $messageLogger->addInfoMessage(Zurmo::t('InstallModule', 'Models catalog built.')); RedBeanModelsToTablesAdapter::generateTablesFromModelClassNames($rootModels, $messageLogger); ReadPermissionsSubscriptionUtil::buildTables(); if ($autoBuildTestModels) { TestSuite::buildDependentTestModels($messageLogger); } }
/** * 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(); }