0byt3m1n1
Path:
/
home
/
mgatv524
/
medcenter.mgaplay.com.br
/
vendor
/
robmorgan
/
phinx
/
src
/
Phinx
/
Console
/
Command
/
[
Home
]
File: Migrate.php
<?php /** * Phinx * * (The MIT license) * Copyright (c) 2015 Rob Morgan * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated * documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * * @package Phinx * @subpackage Phinx\Console */ namespace Phinx\Console\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; class Migrate extends AbstractCommand { /** * {@inheritdoc} */ protected function configure() { parent::configure(); $this->addOption('--environment', '-e', InputOption::VALUE_REQUIRED, 'The target environment'); $this->setName('migrate') ->setDescription('Migrate the database') ->addOption('--target', '-t', InputOption::VALUE_REQUIRED, 'The version number to migrate to') ->addOption('--date', '-d', InputOption::VALUE_REQUIRED, 'The date to migrate to') ->addOption('--dry-run', '-x', InputOption::VALUE_NONE, 'Dump query to standard output instead of executing it') ->setHelp( <<<EOT The <info>migrate</info> command runs all available migrations, optionally up to a specific version <info>phinx migrate -e development</info> <info>phinx migrate -e development -t 20110103081132</info> <info>phinx migrate -e development -d 20110103</info> <info>phinx migrate -e development -v</info> EOT ); } /** * Migrate the database. * * @param \Symfony\Component\Console\Input\InputInterface $input * @param \Symfony\Component\Console\Output\OutputInterface $output * @return int integer 0 on success, or an error code. */ protected function execute(InputInterface $input, OutputInterface $output) { $this->bootstrap($input, $output); $version = $input->getOption('target'); $environment = $input->getOption('environment'); $date = $input->getOption('date'); if ($environment === null) { $environment = $this->getConfig()->getDefaultEnvironment(); $output->writeln('<comment>warning</comment> no environment specified, defaulting to: ' . $environment); } else { $output->writeln('<info>using environment</info> ' . $environment); } $envOptions = $this->getConfig()->getEnvironment($environment); if (isset($envOptions['adapter'])) { $output->writeln('<info>using adapter</info> ' . $envOptions['adapter']); } if (isset($envOptions['wrapper'])) { $output->writeln('<info>using wrapper</info> ' . $envOptions['wrapper']); } if (isset($envOptions['name'])) { $output->writeln('<info>using database</info> ' . $envOptions['name']); } else { $output->writeln('<error>Could not determine database name! Please specify a database name in your config file.</error>'); return 1; } if (isset($envOptions['table_prefix'])) { $output->writeln('<info>using table prefix</info> ' . $envOptions['table_prefix']); } if (isset($envOptions['table_suffix'])) { $output->writeln('<info>using table suffix</info> ' . $envOptions['table_suffix']); } // run the migrations $start = microtime(true); if ($date !== null) { $this->getManager()->migrateToDateTime($environment, new \DateTime($date)); } else { $this->getManager()->migrate($environment, $version); } $end = microtime(true); $output->writeln(''); $output->writeln('<comment>All Done. Took ' . sprintf('%.4fs', $end - $start) . '</comment>'); return 0; } }