Example #1
0
 public function deploy()
 {
     set_time_limit(0);
     $statuses = array();
     // application configs
     $configs = Input::get('config', array());
     $configs['security'] = Input::get('security', array());
     // Flush cache on deployment
     Cache\Cache::flush();
     // Migrate and keep schema cache
     $collections_migrated = 0;
     foreach (Input::get('schema', array()) as $collection => $config) {
         if (Schema\Builder::getInstance()->migrate(Model\App::collection($collection)->getModel(), $config)) {
             $collections_migrated += 1;
         }
     }
     $statuses['schema'] = $collections_migrated;
     // do we have write permission on this server?
     if (is_writable(storage_dir())) {
         $statuses['config'] = Config::deploy($configs);
         $statuses['schedule'] = Model\ScheduledTask::deploy(Input::get('schedule', array()));
         // install composer packages
         $statuses['packages'] = Package\Manager::install(Input::get('packages', array()));
     } else {
         $error_message = array('error' => 'without write permissions');
         $statuses['error'] = "Without write permissions. Ignoring 'config', 'schedule' and 'packages'.";
     }
     // modules
     $statuses['modules'] = Model\Module::deploy(Input::get('modules', array()));
     return $statuses;
 }