thomascube
2009-10-15 f18ae44790fdd814bed9d6a94c9778cf82d6a2f5
bin/dumpschema.php
@@ -1,3 +1,4 @@
#!/usr/bin/env php
<?php
/*
@@ -5,7 +6,7 @@
 | bin/dumpschema.php                                                    |
 |                                                                       |
 | This file is part of the RoundCube Webmail client                     |
 | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland                 |
 | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland                 |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 | PURPOSE:                                                              |
@@ -18,6 +19,10 @@
 $Id$
*/
if (php_sapi_name() != 'cli') {
    die('Not on the "shell" (php-cli).');
}
define('INSTALL_PATH', realpath(dirname(__FILE__) . '/..') . '/' );
require INSTALL_PATH.'program/include/iniset.php';
@@ -45,14 +50,21 @@
   'quote_identifier' => true,
   'force_defaults' => false,
   'portability' => false,
   'disable_smart_seqname' => true,
   'seqname_format' => '%s'
);
$schema =& MDB2_Schema::factory($config->get('db_dsnw'), $options);
$dsnw = $config->get('db_dsnw');
$dsn_array = MDB2::parseDSN($dsnw);
// set options for postgres databases
if ($dsn_array['phptype'] == 'pgsql') {
   $options['disable_smart_seqname'] = true;
   $options['seqname_format'] = '%s';
}
$schema =& MDB2_Schema::factory($dsnw, $options);
$schema->db->supported['transactions'] = false;
// send as text/xml when opened in browser
if ($_SERVER['REMOTE_ADDR'])
   header('Content-Type: text/xml');
@@ -68,6 +80,8 @@
   );
   
   $definition = $schema->getDefinitionFromDatabase();
   $definition['charset'] = 'utf8';
   if (PEAR::isError($definition)) {
      $error = $definition->getMessage() . ' ' . $definition->getUserInfo();
   }
@@ -81,7 +95,7 @@
$schema->disconnect();
//if ($error)
//   fputs(STDERR, $error);
if ($error && !$_SERVER['REMOTE_ADDR'])
   fputs(STDERR, $error);
?>