3
* $Id: GenerateSql.php 2761 2007-10-07 23:42:29Z zYne $
5
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
6
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
7
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
8
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
9
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
10
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
11
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
12
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
13
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
14
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
15
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
17
* This software consists of voluntary contributions made by many individuals
18
* and is licensed under the LGPL. For more information, see
19
* <http://www.phpdoctrine.org>.
23
* Doctrine_Task_GenerateSql
27
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
28
* @link www.phpdoctrine.org
30
* @version $Revision: 2761 $
31
* @author Jonathan H. Wage <jwage@mac.com>
33
class Doctrine_Task_GenerateSql extends Doctrine_Task
35
public $description = 'Generate sql for all existing database connections.',
36
$requiredArguments = array('models_path' => 'Specify complete path to your Doctrine_Record definitions.',
37
'sql_path' => 'Path to write the generated sql.'),
38
$optionalArguments = array();
40
public function execute()
42
if (is_dir($this->getArgument('sql_path'))) {
43
$path = $this->getArgument('sql_path') . DIRECTORY_SEPARATOR . 'schema.sql';
44
} else if (is_file($this->getArgument('sql_path'))) {
45
$path = $this->getArgument('sql_path');
47
throw new Doctrine_Task_Exception('Invalid sql path.');
50
$sql = Doctrine::generateSqlFromModels($this->getArgument('models_path'));
52
file_put_contents($path, $sql);
54
$this->notify('Generated SQL successfully for models');
b'\\ No newline at end of file'