$console->register('db:schema:dump')->setDescription('Dumps the schema for a component into its schema.sql file')->setDefinition(array(new InputArgument('component', InputArgument::IS_ARRAY, 'Name of the components')))->setCode(function (InputInterface $input, OutputInterface $output) use($console) { $component = ask_for_component($input, $output, $console); $migrators = new Migrators($console, $component, false); $migrators->setOutput($output); foreach ($migrators as $migrator) { $migrator->createSchema(); $migrator->write(); $output->writeLn('<info>Dump database schema for com_' . $migrator->getComponent() . '</info>'); } }); if (strtoupper(substr(PHP_OS, 0, 3)) != 'WIN') { $console->register('db:dump')->setDescription('Dump data to a sql file')->setDefinition(array(new InputArgument('file', InputArgument::OPTIONAL, 'The output file'), new InputOption('replace-prefix', null, InputOption::VALUE_NONE)))->setCode(function (InputInterface $input, OutputInterface $output) use($console) { $file = $input->getArgument('file'); $console->loadFramework(); $config = new Config(WWW_ROOT); $config = new \KConfig($config->getDatabaseInfo()); $cmd = "mysqldump --add-drop-table --extended-insert=FALSE --add-locks --skip-comments -u {$config->user} -p{$config->password} -h{$config->host} -P{$config->port} {$config->name}"; if ($input->getOption('replace-prefix')) { $cmd .= " | sed -e 's/`{$config->prefix}/`#__/'"; } if ($file) { @mkdir(dirname($file), 0755, true); system("{$cmd} > {$file}"); } else { passthru($cmd); } }); } $console->register('db:load')->setDescription('Load data from a sql file into the database')->setDefinition(array(new InputArgument('file', InputArgument::REQUIRED, 'The output file')))->setCode(function (InputInterface $input, OutputInterface $output) use($console) { $file = realpath($input->getArgument('file')); if (!file_exists($file)) {