/**
  * Execute this command.
  *
  * @return int|void
  */
 protected function doExecute()
 {
     $type = $this->getOption('s') ? 'sql' : 'yaml';
     $model = new SchemaModel();
     if ($this->getOption('a')) {
         $profiles = ProfileHelper::getAllProfiles();
     } else {
         $profiles = $this->io->getArguments() ?: array(ProfileHelper::getProfile());
     }
     $config = Factory::getConfig();
     foreach ($profiles as $profile) {
         $config->set('profile', $profile);
         // Check schema.
         $path = $model->getPath($type);
         if (file_exists($path) && !$this->getOption('y')) {
             $prompter = new BooleanPrompter(sprintf('Schema file <info>%s</info> exists, do you want to override it? [Y/n]: ', $profile));
             if (!$prompter->ask()) {
                 $this->out('cancelled.');
                 return;
             }
         }
         // Exporting
         $this->out()->out('<comment>Exporting</comment> profile schema: <info>' . $profile . '</info>');
         $model->export($type);
         $this->out()->out(sprintf('Schema file dumped to: <info>%s</info>', $model->getState()->get('dump.path')));
     }
     /*
     $yaml = $this->getOption('yaml');
     
     $exporter = $yaml ? new YamlExporter : new SqlExporter;
     
     $result = $exporter->export();
     
     $config = \JFactory::getConfig();
     
     $file = 'site-' . $config->get('db') . '-' . date('Y-m-d-H-i-s');
     
     if ($yaml)
     {
     	$file .= '.yml';
     }
     else
     {
     	$file .= '.sql';
     }
     
     $file = JCONSOLE . '/jconsole/resource/sql/export/' . ($yaml ? 'yaml/' : '') . $file;
     
     \JFile::write($file, $result);
     
     $this->out()->out(sprintf('Sql file dumped to: %s', $file));
     */
 }
 /**
  * Execute this command.
  *
  * @throws \Exception
  * @return int|void
  */
 protected function doExecute()
 {
     $name = $this->getArgument(0);
     if (!$name) {
         throw new \Exception('Please enter a profile name.');
     }
     if (!$this->getOption('y')) {
         $prompter = new BooleanPrompter('Do you really want to remove "' . $name . '" profile? [Y/n]: ');
         if (!$prompter->ask()) {
             return false;
         }
     }
     $model = new ProfileModel();
     $model->remove($name);
     $this->out()->out(sprintf('Profile "%s" removed.', $name));
     return true;
 }
 /**
  * Execute this command.
  *
  * @throws \RuntimeException
  * @return int|void
  */
 protected function doExecute()
 {
     $type = $this->getOption('s') ? 'sql' : 'yaml';
     $model = new SchemaModel();
     $path = $model->getPath($type);
     if (file_exists($path) && !$this->getOption('y')) {
         $prompter = new BooleanPrompter('This action will compare and update your sql schema [Y/n]: ');
         if (!$prompter->ask()) {
             $this->out('cancelled.');
             return;
         }
     } elseif (!file_exists($path)) {
         throw new \RuntimeException('Schema file not exists.');
     }
     $force = $this->getOption('f');
     if ($force) {
         throw new \RuntimeException('Sorry, force mode not prepare yet...');
     }
     $state = $model->getState();
     if ($this->getOption('a')) {
         $profiles = ProfileHelper::getAllProfiles();
     } else {
         $profiles = $this->io->getArguments() ?: array(ProfileHelper::getProfile());
     }
     $config = Factory::getConfig();
     foreach ($profiles as $profile) {
         $config->set('profile', $profile);
         // Backup
         $this->out()->out(sprintf('<comment>Backing up</comment> profile <info>%s</info> ...', $profile));
         $model->backup();
         $this->out()->out(sprintf('Schema file backup to: %s', $model->getState()->get('dump.path')));
         // Import
         $this->out()->out(sprintf('<option>Importing</option> profile schema: <info>%s</info> ...', $profile));
         $model->import($force, $type);
         $this->out()->out(sprintf('Schema file dumped to: %s', $model->getState()->get('dump.path')));
         // Report
         $analyze = $state->get('import.analyze');
         foreach ($analyze as $table => $schema) {
             $this->out()->out($table . ':');
             foreach ($schema as $action => $count) {
                 $this->out('    ' . $action . ': ' . $count);
             }
         }
     }
     return;
 }
示例#4
0
 /**
  * doExecute
  *
  * @return  integer
  */
 protected function doExecute()
 {
     $projectRoot = $this->app->get('project.path.data');
     $systemRoot = WINDWALKER_ROOT;
     $boolPrompter = new BooleanPrompter();
     if (!$boolPrompter->ask('This action will remove all current files, are you sure to continue? [<comment>Y/n</comment>]: ')) {
         $this->out('<comment>canceled.</comment>')->out();
         return true;
     }
     $this->out()->out('<comment>Start initialise Vaseman project.</comment>')->out();
     $this->copyFolder($systemRoot . '/media', $projectRoot . '/media');
     $this->copyFolder($systemRoot . '/entries', $projectRoot . '/entries');
     $this->copyFolder($systemRoot . '/layouts', $projectRoot . '/layouts');
     $this->copyFile($systemRoot . '/etc/config.yml', $projectRoot . '/config.yml');
     $this->createFolder($projectRoot . '/src/Plugin');
     $this->createFolder($projectRoot . '/src/Helper');
     $this->createFolder($projectRoot . '/src/Twig');
     $this->out()->out('<info>Project generated.</info>')->out();
     return true;
 }
 /**
  * Execute this command.
  *
  * @throws \RuntimeException
  * @return int|void
  */
 protected function doExecute()
 {
     $model = new SchemaModel();
     $path = $model->backupPath;
     if (file_exists($path) && !$this->getOption('y')) {
         $prompter = new BooleanPrompter('Are you sure you want to restore? [Y/n]: ');
         if (!$prompter->ask()) {
             $this->out('cancelled.');
             return;
         }
     }
     if (!file_exists($path)) {
         throw new \RuntimeException('Backup file not exists.');
     }
     $this->out()->out('Restoring...');
     $model->restore();
     $state = $model->getState();
     $queries = $state->get('import.queries');
     $this->out()->out(sprintf('Restore success, %s queries executed.', $queries));
     return;
 }