19 require_once(BASE.
"wcmf/lib/model/mapper/class.RDBMapper.php");
20 require_once(BASE.
"wcmf/lib/util/class.Log.php");
21 require_once(BASE.
"wcmf/lib/util/class.InifileParser.php");
40 if (file_exists($file))
42 Log::info(
'Executing SQL script '.$file.
' ...', __CLASS__);
47 if (($initParams = $parser->getSection($initSection)) ===
false)
54 $connection = $mapper->getConnection();
56 Log::debug(
'Starting transaction ...', __CLASS__);
57 $connection->beginTransaction();
60 $fh = fopen($file,
'r');
65 $command = fgets($fh, 8192);
66 if (strlen(trim($command)) > 0)
68 Log::debug(
'Executing command: '.$command, __CLASS__);
70 $connection->query($command);
72 catch(PDOException $ex) {
80 if ($exception == null)
82 Log::debug(
'Execution succeeded, committing ...', __CLASS__);
83 $connection->commit();
87 Log::error(
'Execution failed. Reason'.$exception->getMessage(), __CLASS__);
89 $connection->rollBack();
91 Log::debug(
'Finished SQL script '.$file.
'.', __CLASS__);
95 Log::error(
'SQL script '.$file.
' not found.', __CLASS__);
107 public static function copyDatabase($srcName, $destName, $server, $user, $password)
109 if($srcName && $destName && $server && $user)
114 $dbConnect = mysql_connect($server, $user, $password);
119 $sqlStatement =
"SHOW TABLES FROM ".$srcName;
120 $tables = mysql_query($sqlStatement, $dbConnect);
123 while($row = mysql_fetch_row($tables))
126 $sqlStatement =
"CREATE TABLE ".$destName.
".".$row[0].
" LIKE ".$srcName.
".".$row[0];
128 $result = mysql_query($sqlStatement, $dbConnect);
132 mysql_free_result($result);
135 $sqlStatement =
"INSERT INTO ".$destName.
".".$row[0].
" SELECT * FROM ".$srcName.
".".$row[0];
137 $result = mysql_query($sqlStatement, $dbConnect);
141 mysql_free_result($result);
143 mysql_free_result($tables);
144 mysql_close($dbConnect);
161 if($name && $server && $user)
164 $dbConnect = mysql_connect($server, $user, $password);
169 $sqlStatement =
"CREATE DATABASE IF NOT EXISTS ".$name;
170 $result = mysql_query($sqlStatement, $dbConnect);
174 mysql_free_result($result);
175 mysql_close($dbConnect);
executeScript($file, $initSection)
RDBMapper maps objects of one type to a relational database schema. It defines a persistence mechanis...
error($message, $category)
debug($message, $category)
info($message, $category)
throwEx($message, $file='', $line='')
static createDatabase($name, $server, $user, $password)
DBUtil provides database helper functions.
static copyDatabase($srcName, $destName, $server, $user, $password)