Source for file install.db.php
Documentation is available at install.db.php
* database functions for installation support
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* @author m2mtech <tech@m2m.at>
* @copyright 2007 m2m server software gmbh
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License Version 2
* @version $Id: install.db.php 148 2007-09-07 16:02:29Z m2mtech $
* @link http://www.ea-geier.at/
* @param string database dsn
require_once(eaADODB_DIR . 'session/adodb-session2.php');
require_once(eaADODB_DIR . 'adodb-xmlschema03.inc.php');
// connect to empty database
if (!$db = ADONewConnection($conf['dsn'])) return false;
$GLOBALS['ADODB_SESS_CONN'] = & $db;
adodb_session_create_table();
$tables = array_merge($conf['txtDBTables'], $conf['txtClientTables']);
$tables = $db->conf['txtDBTables'];
if (isset ($db->conf['txtVersion']))
$db->updateSysConf(array('txtVersion' => eaVERSION));
if (!$db->_clientTables) return false; // no tables
if (!$clients = $db->select('id', $db->table('clients'))) return false;
$oldPrefix = $db->_prefix;
foreach ($clients as $client) {
$switched = $db->switchToClientDB($client['id']);
$db->_prefix = $oldPrefix;
if ($switched) { // switch back
$db->_db = ADONewConnection($conf['dsn']);
$db->_db->SetFetchMode(ADODB_FETCH_ASSOC);
require_once(eaADODB_DIR . 'adodb-xmlschema03.inc.php');
foreach ($tables as $table) {
$schema = new adoSchema($db);
$schema->ParseSchemaString(str_replace($table, $prefix . $table, $schema->ConvertSchemaFile('admin/sql/' . $table . '.sql')));
$schema->ContinueOnError(true);
$schema->ExecuteSchema();
|