StorageServer install: Added more error checking and better code resuse and also fixed a bug where a table was not removed on uninstall because the tables were removed in the wrong order. Install of scheduler was moved to the products/scheduler/bin directory.

This commit is contained in:
paul 2007-01-09 17:30:46 +00:00
parent 219c8cc06f
commit 2e37fb9c66
9 changed files with 324 additions and 306 deletions

View File

@ -1,6 +1,5 @@
<?php
/**
* @author Tomas Hlava <th@red2head.com>
* @author Paul Baranowski <paul@paulbaranowski.org>
* @version $Revision$
* @package Campcaster
@ -29,6 +28,7 @@ echo "*************************\n";
require_once('../conf.php');
require_once('../GreenBox.php');
require_once("installInit.php");
require_once('installMain.php');
require_once('installStorage.php');

View File

@ -0,0 +1,49 @@
<?php
if (!function_exists('pg_connect')) {
trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR);
exit(2);
}
require_once('DB.php');
function camp_db_table_exists($p_name)
{
global $CC_DBC;
$sql = "SELECT * FROM ".$p_name;
$result = $CC_DBC->GetOne($sql);
if (PEAR::isError($result)) {
return false;
}
return true;
}
function camp_install_query($sql, $verbose = true)
{
global $CC_DBC;
$result = $CC_DBC->query($sql);
if (PEAR::isError($result)) {
echo "Error! ".$result->getMessage()."\n";
echo " SQL statement was:\n";
echo " ".$sql."\n\n";
} else {
if ($verbose) {
echo "done.\n";
}
}
}
$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE);
if (PEAR::isError($CC_DBC)) {
echo $CC_DBC->getMessage()."\n";
echo $CC_DBC->getUserInfo()."\n";
echo "Database connection problem.\n";
echo "Check if database '{$CC_CONFIG['dsn']['database']}' exists".
" with corresponding permissions.\n";
exit(1);
} else {
echo " * Connected to database\n";
}
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
?>

View File

@ -1,6 +1,5 @@
<?php
/**
* @author Tomas Hlava <th@red2head.com>
* @author Paul Baranowski <paul@paulbaranowski.org>
* @version $Revision: 2475 $
* @package Campcaster
@ -19,92 +18,67 @@ if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
exit(1);
}
if (!function_exists('pg_connect')) {
trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR);
exit(2);
}
require_once('DB.php');
function camp_db_table_exists($p_name)
{
global $CC_DBC;
$sql = "SELECT * FROM ".$p_name;
$result = $CC_DBC->GetOne($sql);
if (PEAR::isError($result)) {
return false;
}
return true;
}
$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE);
if (PEAR::isError($CC_DBC)) {
echo $CC_DBC->getMessage()."\n";
echo $CC_DBC->getUserInfo()."\n";
echo "Database connection problem.\n";
echo "Check if database '{$CC_CONFIG['dsn']['database']}' exists".
" with corresponding permissions.\n";
echo "Database access is defined by 'dsn' values in var/conf.php ".
"(in storageServer directory).\n";
exit(1);
} else {
echo " * Connected to database\n";
}
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
//------------------------------------------------------------------------------
// Install database tables
//------------------------------------------------------------------------------
if (!camp_db_table_exists($CC_CONFIG['treeTable'])) {
echo " * Creating database table ".$CC_CONFIG['treeTable']."...";
$r = $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['treeTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['treeTable']." (
id int not null PRIMARY KEY,
name varchar(255) not null default'',
-- parid int,
type varchar(255) not null default'',
param varchar(255))");
if (PEAR::isError($r)) {
echo $r->getMessage()."\n";
}
param varchar(255))";
camp_install_query($sql, false);
$CC_DBC->createSequence($CC_CONFIG['treeTable']."_id_seq");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['treeTable']."_id_idx
ON ".$CC_CONFIG['treeTable']." (id)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['treeTable']."_name_idx
ON ".$CC_CONFIG['treeTable']." (name)");
echo "done.\n";
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['treeTable']."_id_idx
ON ".$CC_CONFIG['treeTable']." (id)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['treeTable']."_name_idx
ON ".$CC_CONFIG['treeTable']." (name)";
camp_install_query($sql);
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['treeTable']."\n";
}
if (!camp_db_table_exists($CC_CONFIG['structTable'])) {
echo " * Creating database table ".$CC_CONFIG['structTable']."...";
$CC_DBC->query("CREATE TABLE ".$CC_CONFIG['structTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['structTable']." (
rid int not null PRIMARY KEY,
objid int not null REFERENCES ".$CC_CONFIG['treeTable']." ON DELETE CASCADE,
parid int not null REFERENCES ".$CC_CONFIG['treeTable']." ON DELETE CASCADE,
level int
)");
level int)";
camp_install_query($sql, false);
$CC_DBC->createSequence($CC_CONFIG['structTable']."_id_seq");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_rid_idx
ON ".$CC_CONFIG['structTable']." (rid)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['structTable']."_objid_idx
ON ".$CC_CONFIG['structTable']." (objid)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['structTable']."_parid_idx
ON ".$CC_CONFIG['structTable']." (parid)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['structTable']."_level_idx
ON ".$CC_CONFIG['structTable']." (level)");
$CC_DBC->query("
CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_objid_level_idx
ON ".$CC_CONFIG['structTable']." (objid, level)
");
$CC_DBC->query("
CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_objid_parid_idx
ON ".$CC_CONFIG['structTable']." (objid, parid)
");
echo "done.\n";
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_rid_idx
ON ".$CC_CONFIG['structTable']." (rid)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['structTable']."_objid_idx
ON ".$CC_CONFIG['structTable']." (objid)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['structTable']."_parid_idx
ON ".$CC_CONFIG['structTable']." (parid)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['structTable']."_level_idx
ON ".$CC_CONFIG['structTable']." (level)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_objid_level_idx
ON ".$CC_CONFIG['structTable']." (objid, level)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['structTable']."_objid_parid_idx
ON ".$CC_CONFIG['structTable']." (objid, parid)";
camp_install_query($sql);
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['structTable']."\n";
}
@ -137,35 +111,39 @@ if (!PEAR::isError($row) && !$row) {
if (!camp_db_table_exists($CC_CONFIG['classTable'])) {
echo " * Creating database table ".$CC_CONFIG['classTable']."...";
$CC_DBC->query("CREATE TABLE ".$CC_CONFIG['classTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['classTable']." (
id int not null PRIMARY KEY,
cname varchar(20)
)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['classTable']."_id_idx
ON ".$CC_CONFIG['classTable']." (id)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['classTable']."_cname_idx
ON ".$CC_CONFIG['classTable']." (cname)");
echo "done.\n";
cname varchar(20))";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['classTable']."_id_idx
ON ".$CC_CONFIG['classTable']." (id)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['classTable']."_cname_idx
ON ".$CC_CONFIG['classTable']." (cname)";
camp_install_query($sql);
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['classTable']."\n";
}
if (!camp_db_table_exists($CC_CONFIG['cmembTable'])) {
echo " * Creating database table ".$CC_CONFIG['cmembTable']."...";
$CC_DBC->query("CREATE TABLE ".$CC_CONFIG['cmembTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['cmembTable']." (
objid int not null,
cid int not null
)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['cmembTable']."_idx
ON ".$CC_CONFIG['cmembTable']." (objid, cid)");
echo "done.\n";
cid int not null)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['cmembTable']."_idx
ON ".$CC_CONFIG['cmembTable']." (objid, cid)";
camp_install_query($sql);
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['cmembTable']."\n";
}
if (!camp_db_table_exists($CC_CONFIG['subjTable'])) {
echo " * Creating database table ".$CC_CONFIG['subjTable']."...";
$CC_DBC->query("CREATE TABLE ".$CC_CONFIG['subjTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['subjTable']." (
id int not null PRIMARY KEY,
login varchar(255) not null default'',
pass varchar(255) not null default'',
@ -173,11 +151,17 @@ if (!camp_db_table_exists($CC_CONFIG['subjTable'])) {
realname varchar(255) not null default'',
lastlogin timestamp,
lastfail timestamp
)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['subjTable']."_id_idx
ON ".$CC_CONFIG['subjTable']." (id)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['subjTable']."_login_idx
ON ".$CC_CONFIG['subjTable']." (login)");
)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['subjTable']."_id_idx
ON ".$CC_CONFIG['subjTable']." (id)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['subjTable']."_login_idx
ON ".$CC_CONFIG['subjTable']." (login)";
camp_install_query($sql, false);
$CC_DBC->createSequence($CC_CONFIG['subjTable']."_id_seq");
echo "done.\n";
} else {
@ -186,15 +170,18 @@ if (!camp_db_table_exists($CC_CONFIG['subjTable'])) {
if (!camp_db_table_exists($CC_CONFIG['smembTable'])) {
echo " * Creating database table ".$CC_CONFIG['smembTable']."...";
$CC_DBC->query("CREATE TABLE ".$CC_CONFIG['smembTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['smembTable']." (
id int not null PRIMARY KEY,
uid int not null default 0,
gid int not null default 0,
level int not null default 0,
mid int
)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['smembTable']."_id_idx
ON ".$CC_CONFIG['smembTable']." (id)");
mid int)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['smembTable']."_id_idx
ON ".$CC_CONFIG['smembTable']." (id)";
camp_install_query($sql, false);
$CC_DBC->createSequence($CC_CONFIG['smembTable']."_id_seq");
echo "done.\n";
} else {
@ -203,19 +190,26 @@ if (!camp_db_table_exists($CC_CONFIG['smembTable'])) {
if (!camp_db_table_exists($CC_CONFIG['permTable'])) {
echo " * Creating database table ".$CC_CONFIG['permTable']."...";
$CC_DBC->query("CREATE TABLE ".$CC_CONFIG['permTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['permTable']." (
permid int not null PRIMARY KEY,
subj int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE,
action varchar(20),
obj int,
type char(1)
)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['permTable']."_permid_idx
ON ".$CC_CONFIG['permTable']." (permid)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['permTable']."_subj_obj_idx
ON ".$CC_CONFIG['permTable']." (subj, obj)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['permTable']."_all_idx
ON ".$CC_CONFIG['permTable']." (subj, action, obj)");
type char(1))";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['permTable']."_permid_idx
ON ".$CC_CONFIG['permTable']." (permid)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['permTable']."_subj_obj_idx
ON ".$CC_CONFIG['permTable']." (subj, obj)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['permTable']."_all_idx
ON ".$CC_CONFIG['permTable']." (subj, action, obj)";
camp_install_query($sql, false);
$CC_DBC->createSequence($CC_CONFIG['permTable']."_id_seq");
echo "done.\n";
} else {
@ -224,26 +218,52 @@ if (!camp_db_table_exists($CC_CONFIG['permTable'])) {
if (!camp_db_table_exists($CC_CONFIG['sessTable'])) {
echo " * Creating database table ".$CC_CONFIG['sessTable']."...";
$CC_DBC->query("CREATE TABLE ".$CC_CONFIG['sessTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['sessTable']." (
sessid char(32) not null PRIMARY KEY,
userid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE,
login varchar(255),
ts timestamp
)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['sessTable']."_sessid_idx
ON ".$CC_CONFIG['sessTable']." (sessid)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['sessTable']."_userid_idx
ON ".$CC_CONFIG['sessTable']." (userid)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['sessTable']."_login_idx
ON ".$CC_CONFIG['sessTable']." (login)");
echo "done.\n";
ts timestamp)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['sessTable']."_sessid_idx
ON ".$CC_CONFIG['sessTable']." (sessid)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['sessTable']."_userid_idx
ON ".$CC_CONFIG['sessTable']." (userid)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['sessTable']."_login_idx
ON ".$CC_CONFIG['sessTable']." (login)";
camp_install_query($sql);
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['sessTable']."\n";
}
/**
* file states:
* <ul>
* <li>empty</li>
* <li>incomplete</li>
* <li>ready</li>
* <li>edited</li>
* <li>deleted</li>
* </ul>
* file types:
* <ul>
* <li>audioclip</li>
* <li>playlist</li>
* <li>webstream</li>
* </ul>
* access types:
* <ul>
* <li>access</li>
* <li>download</li>
* </ul>
*/
if (!camp_db_table_exists($CC_CONFIG['filesTable'])) {
echo " * Creating database table ".$CC_CONFIG['filesTable']."...";
$r = $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['filesTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['filesTable']." (
id int not null,
gunid bigint not null, -- global unique ID
name varchar(255) not null default'', -- human file id ;)
@ -252,23 +272,47 @@ if (!camp_db_table_exists($CC_CONFIG['filesTable'])) {
state varchar(128) not null default'empty', -- file state
currentlyaccessing int not null default 0, -- access counter
editedby int REFERENCES ".$CC_CONFIG['subjTable'].", -- who edits it
mtime timestamp(6) with time zone -- lst modif.time
)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['filesTable']."_id_idx
ON ".$CC_CONFIG['filesTable']." (id)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['filesTable']."_gunid_idx
ON ".$CC_CONFIG['filesTable']." (gunid)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['filesTable']."_name_idx
ON ".$CC_CONFIG['filesTable']." (name)");
echo "done.\n";
mtime timestamp(6) with time zone, -- lst modif.time
md5 char(32)
)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['filesTable']."_id_idx
ON ".$CC_CONFIG['filesTable']." (id)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['filesTable']."_gunid_idx
ON ".$CC_CONFIG['filesTable']." (gunid)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['filesTable']."_name_idx
ON ".$CC_CONFIG['filesTable']." (name)";
camp_install_query($sql);
$sql = "CREATE INDEX ".$CC_CONFIG['filesTable']."_md5_idx
ON ls_files (md5)";
camp_install_query($sql);
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['filesTable']."\n";
}
/**
* id subjns subject predns predicate objns object
* y1 literal xmbf NULL namespace literal http://www.sotf.org/xbmf
* x1 gunid <gunid> xbmf contributor NULL NULL
* x2 mdid x1 xbmf role literal Editor
*
* predefined shortcuts:
* _L = literal
* _G = gunid (global id of media file)
* _I = mdid (local id of metadata record)
* _nssshortcut = namespace shortcut definition
* _blank = blank node
*/
if (!camp_db_table_exists($CC_CONFIG['mdataTable'])) {
echo " * Creating database table ".$CC_CONFIG['mdataTable']."...";
$CC_DBC->createSequence($CC_CONFIG['mdataTable']."_id_seq");
$r = $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['mdataTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['mdataTable']." (
id int not null,
gunid bigint,
subjns varchar(255), -- subject namespace shortcut/uri
@ -278,23 +322,31 @@ if (!camp_db_table_exists($CC_CONFIG['mdataTable'])) {
predxml char(1) not null default 'T', -- Tag or Attribute
objns varchar(255), -- object namespace shortcut/uri
object text
)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['mdataTable']."_id_idx
ON ".$CC_CONFIG['mdataTable']." (id)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['mdataTable']."_gunid_idx
ON ".$CC_CONFIG['mdataTable']." (gunid)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['mdataTable']."_subj_idx
ON ".$CC_CONFIG['mdataTable']." (subjns, subject)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['mdataTable']."_pred_idx
ON ".$CC_CONFIG['mdataTable']." (predns, predicate)");
echo "done.\n";
)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['mdataTable']."_id_idx
ON ".$CC_CONFIG['mdataTable']." (id)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['mdataTable']."_gunid_idx
ON ".$CC_CONFIG['mdataTable']." (gunid)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['mdataTable']."_subj_idx
ON ".$CC_CONFIG['mdataTable']." (subjns, subject)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['mdataTable']."_pred_idx
ON ".$CC_CONFIG['mdataTable']." (predns, predicate)";
camp_install_query($sql);
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['mdataTable']."\n";
}
if (!camp_db_table_exists($CC_CONFIG['accessTable'])) {
echo " * Creating database table ".$CC_CONFIG['accessTable']."...";
$r = $CC_DBC->query("CREATE TABLE ".$CC_CONFIG['accessTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['accessTable']." (
gunid bigint, -- global unique id
token bigint, -- access token
chsum char(32) not null default'', -- md5 checksum
@ -303,14 +355,20 @@ if (!camp_db_table_exists($CC_CONFIG['accessTable'])) {
parent bigint, -- parent token
owner int REFERENCES ".$CC_CONFIG['subjTable'].", -- subject have started it
ts timestamp
)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['accessTable']."_token_idx
ON ".$CC_CONFIG['accessTable']." (token)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['accessTable']."_gunid_idx
ON ".$CC_CONFIG['accessTable']." (gunid)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['accessTable']."_parent_idx
ON ".$CC_CONFIG['accessTable']." (parent)");
echo "done.\n";
)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['accessTable']."_token_idx
ON ".$CC_CONFIG['accessTable']." (token)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['accessTable']."_gunid_idx
ON ".$CC_CONFIG['accessTable']." (gunid)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['accessTable']."_parent_idx
ON ".$CC_CONFIG['accessTable']." (parent)";
camp_install_query($sql);
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['accessTable']."\n";
}
@ -326,7 +384,7 @@ $r = $gb->initData(true);
if (!camp_db_table_exists($CC_CONFIG['transTable'])) {
echo " * Creating database table ".$CC_CONFIG['transTable']."...";
$CC_DBC->query("CREATE TABLE ".$CC_CONFIG['transTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['transTable']." (
id int not null, -- primary key
trtok char(16) not null, -- transport token
direction varchar(128) not null, -- direction: up|down
@ -351,19 +409,29 @@ if (!camp_db_table_exists($CC_CONFIG['transTable'])) {
errmsg varchar(255), -- error message string for failed tr.
start timestamp, -- starttime
ts timestamp -- mtime
)");
)";
camp_install_query($sql, false);
$CC_DBC->createSequence($CC_CONFIG['transTable']."_id_seq");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_id_idx
ON ".$CC_CONFIG['transTable']." (id)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_trtok_idx
ON ".$CC_CONFIG['transTable']." (trtok)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_token_idx
ON ".$CC_CONFIG['transTable']." (pdtoken)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['transTable']."_gunid_idx
ON ".$CC_CONFIG['transTable']." (gunid)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['transTable']."_state_idx
ON ".$CC_CONFIG['transTable']." (state)");
echo "done.\n";
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_id_idx
ON ".$CC_CONFIG['transTable']." (id)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_trtok_idx
ON ".$CC_CONFIG['transTable']." (trtok)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['transTable']."_token_idx
ON ".$CC_CONFIG['transTable']." (pdtoken)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['transTable']."_gunid_idx
ON ".$CC_CONFIG['transTable']." (gunid)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['transTable']."_state_idx
ON ".$CC_CONFIG['transTable']." (state)";
camp_install_query($sql);
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['transTable']."\n";
}

View File

@ -1,54 +0,0 @@
<?php
// Do not allow remote execution
$arr = array_diff_assoc($_SERVER, $_ENV);
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
header("HTTP/1.1 400");
header("Content-type: text/plain; charset=UTF-8");
echo "400 Not executable\r\n";
exit(1);
}
if (!camp_db_table_exists($CC_CONFIG['scheduleTable'])) {
echo " * Creating database table ".$CC_CONFIG['scheduleTable']."...";
$sql = "CREATE TABLE ".$CC_CONFIG['scheduleTable']."("
." id BIGINT NOT NULL,"
." playlist BIGINT NOT NULL,"
." starts TIMESTAMP NOT NULL,"
." ends TIMESTAMP NOT NULL,"
." PRIMARY KEY(id))";
$CC_DBC->query($sql);
echo "done.\n";
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['scheduleTable']."\n";
}
if (!camp_db_table_exists($CC_CONFIG['playlogTable'])) {
echo " * Creating database table ".$CC_CONFIG['playlogTable']."...";
$sql = "CREATE TABLE ".$CC_CONFIG['playLogTable']."("
." id BIGINT NOT NULL,"
." audioClipId BIGINT NOT NULL,"
." timestamp TIMESTAMP NOT NULL,"
." PRIMARY KEY(id))";
$CC_DBC->query($sql);
echo "done.\n";
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['playlogTable']."\n";
}
if (!camp_db_table_exists($CC_CONFIG['backupTable'])) {
echo " * Creating database table ".$CC_CONFIG['backupTable']."...";
$sql = "CREATE TABLE ".$CC_CONFIG['backupTable']." ("
." token VARCHAR(64) NOT NULL,"
." sessionId VARCHAR(64) NOT NULL,"
." status VARCHAR(32) NOT NULL,"
." fromTime TIMESTAMP NOT NULL,"
." toTime TIMESTAMP NOT NULL,"
." PRIMARY KEY(token))";
$CC_DBC->query($sql);
echo "done.\n";
} else {
echo " * Skipping: database table already exists: ".$CC_CONFIG['backupTable']."\n";
}
?>

View File

@ -11,19 +11,25 @@ if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
if (!camp_db_table_exists($CC_CONFIG['prefTable'])) {
echo " * Creating database table ".$CC_CONFIG['prefTable']."...";
$CC_DBC->createSequence($CC_CONFIG['prefTable']."_id_seq");
$CC_DBC->query("CREATE TABLE ".$CC_CONFIG['prefTable']." (
$sql = "CREATE TABLE ".$CC_CONFIG['prefTable']." (
id int not null,
subjid int REFERENCES ".$CC_CONFIG['subjTable']." ON DELETE CASCADE,
keystr varchar(255),
valstr text
)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['prefTable']."_id_idx
ON ".$CC_CONFIG['prefTable']." (id)");
$CC_DBC->query("CREATE UNIQUE INDEX ".$CC_CONFIG['prefTable']."_subj_key_idx
ON ".$CC_CONFIG['prefTable']." (subjid, keystr)");
$CC_DBC->query("CREATE INDEX ".$CC_CONFIG['prefTable']."_subjid_idx
ON ".$CC_CONFIG['prefTable']." (subjid)");
echo "done.\n";
)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['prefTable']."_id_idx
ON ".$CC_CONFIG['prefTable']." (id)";
camp_install_query($sql, false);
$sql = "CREATE UNIQUE INDEX ".$CC_CONFIG['prefTable']."_subj_key_idx
ON ".$CC_CONFIG['prefTable']." (subjid, keystr)";
camp_install_query($sql, false);
$sql = "CREATE INDEX ".$CC_CONFIG['prefTable']."_subjid_idx
ON ".$CC_CONFIG['prefTable']." (subjid)";
camp_install_query($sql);
echo " * Inserting starting data into table ".$CC_CONFIG['prefTable']."...";
$stPrefGr = Subjects::GetSubjId($CC_CONFIG['StationPrefsGr']);

View File

@ -1,6 +1,5 @@
<?php
/**
* @author Tomas Hlava <th@red2head.com>
* @author Paul Baranowski <paul@paulbaranowski.org>
* @version $Revision$
* @package Campcaster
@ -25,8 +24,9 @@ echo "* StorageServer Uninstall *\n";
echo "***************************\n";
require_once('../conf.php');
require_once('uninstallMain.php');
require_once('installInit.php');
require_once('uninstallStorage.php');
require_once('uninstallMain.php');
echo "************************************\n";
echo "* StorageServer Uninstall Complete *\n";

View File

@ -1,6 +1,5 @@
<?php
/**
* @author Tomas Hlava <th@red2head.com>
* @author Paul Baranowski <paul@paulbaranowski.org>
* @version $Revision: 2458 $
* @package Campcaster
@ -19,39 +18,11 @@ if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
exit;
}
if (!function_exists('pg_connect')) {
trigger_error("PostgreSQL PHP extension required and not found.", E_USER_ERROR);
exit(2);
}
require_once('DB.php');
function camp_db_table_exists($p_name)
{
global $CC_DBC;
$sql = "SELECT * FROM ".$p_name;
$result = $CC_DBC->GetOne($sql);
if (PEAR::isError($result)) {
return false;
}
return true;
}
$CC_DBC = DB::connect($CC_CONFIG['dsn'], TRUE);
if (PEAR::isError($CC_DBC)) {
echo "Database connection problem.\n";
echo "Check if database '".$CC_CONFIG['dsn']['database']."' exists".
" with corresponding permissions.\n";
echo "Database access is defined by 'dsn' values in conf.php.\n";
exit(1);
}
$CC_DBC->setFetchMode(DB_FETCHMODE_ASSOC);
if (camp_db_table_exists($CC_CONFIG['transTable'])) {
echo " * Removing database table ".$CC_CONFIG['transTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['transTable']);
$sql = "DROP TABLE ".$CC_CONFIG['transTable'];
camp_install_query($sql, false);
$CC_DBC->dropSequence($CC_CONFIG['transTable']."_id_seq");
echo "done.\n";
} else {
@ -60,7 +31,9 @@ if (camp_db_table_exists($CC_CONFIG['transTable'])) {
if (camp_db_table_exists($CC_CONFIG['mdataTable'])) {
echo " * Removing database table ".$CC_CONFIG['mdataTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['mdataTable']);
$sql = "DROP TABLE ".$CC_CONFIG['mdataTable'];
camp_install_query($sql, false);
$CC_DBC->dropSequence($CC_CONFIG['mdataTable']."_id_seq");
echo "done.\n";
} else {
@ -69,23 +42,25 @@ if (camp_db_table_exists($CC_CONFIG['mdataTable'])) {
if (camp_db_table_exists($CC_CONFIG['filesTable'])) {
echo " * Removing database table ".$CC_CONFIG['filesTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['filesTable']);
echo "done.\n";
$sql = "DROP TABLE ".$CC_CONFIG['filesTable'];
camp_install_query($sql);
} else {
echo " * Skipping: database table ".$CC_CONFIG['filesTable']."\n";
}
if (camp_db_table_exists($CC_CONFIG['accessTable'])) {
echo " * Removing database table ".$CC_CONFIG['accessTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['accessTable']);
echo "done.\n";
$sql = "DROP TABLE ".$CC_CONFIG['accessTable'];
camp_install_query($sql);
} else {
echo " * Skipping: database table ".$CC_CONFIG['accessTable']."\n";
}
if (camp_db_table_exists($CC_CONFIG['permTable'])) {
echo " * Removing database table ".$CC_CONFIG['permTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['permTable']);
$sql = "DROP TABLE ".$CC_CONFIG['permTable'];
camp_install_query($sql, false);
$CC_DBC->dropSequence($CC_CONFIG['permTable']."_id_seq");
echo "done.\n";
} else {
@ -94,16 +69,19 @@ if (camp_db_table_exists($CC_CONFIG['permTable'])) {
if (camp_db_table_exists($CC_CONFIG['sessTable'])) {
echo " * Removing database table ".$CC_CONFIG['sessTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['sessTable']);
echo "done.\n";
$sql = "DROP TABLE ".$CC_CONFIG['sessTable'];
camp_install_query($sql);
} else {
echo " * Skipping: database table ".$CC_CONFIG['sessTable']."\n";
}
if (camp_db_table_exists($CC_CONFIG['subjTable'])) {
echo " * Removing database table ".$CC_CONFIG['subjTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['subjTable']);
$CC_DBC->dropSequence($CC_CONFIG['subjTable']."_id_seq");
$sql = "DROP TABLE ".$CC_CONFIG['subjTable'];
camp_install_query($sql, false);
echo "done.\n";
} else {
echo " * Skipping: database table ".$CC_CONFIG['subjTable']."\n";
@ -111,7 +89,9 @@ if (camp_db_table_exists($CC_CONFIG['subjTable'])) {
if (camp_db_table_exists($CC_CONFIG['smembTable'])) {
echo " * Removing database table ".$CC_CONFIG['smembTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['smembTable']);
$sql = "DROP TABLE ".$CC_CONFIG['smembTable'];
camp_install_query($sql, false);
$CC_DBC->dropSequence($CC_CONFIG['smembTable']."_id_seq");
echo "done.\n";
} else {
@ -120,23 +100,25 @@ if (camp_db_table_exists($CC_CONFIG['smembTable'])) {
if (camp_db_table_exists($CC_CONFIG['classTable'])) {
echo " * Removing database table ".$CC_CONFIG['classTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['classTable']);
echo "done.\n";
$sql = "DROP TABLE ".$CC_CONFIG['classTable'];
camp_install_query($sql);
} else {
echo " * Skipping: database table ".$CC_CONFIG['classTable']."\n";
}
if (camp_db_table_exists($CC_CONFIG['cmembTable'])) {
echo " * Removing database table ".$CC_CONFIG['cmembTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['cmembTable']);
echo "done.\n";
$sql = "DROP TABLE ".$CC_CONFIG['cmembTable'];
camp_install_query($sql);
} else {
echo " * Skipping: database table ".$CC_CONFIG['cmembTable']."\n";
}
if (camp_db_table_exists($CC_CONFIG['structTable'])) {
echo " * Removing database table ".$CC_CONFIG['structTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['structTable']);
$sql = "DROP TABLE ".$CC_CONFIG['structTable'];
camp_install_query($sql, false);
$CC_DBC->dropSequence($CC_CONFIG['structTable']."_id_seq");
echo "done.\n";
} else {
@ -145,7 +127,9 @@ if (camp_db_table_exists($CC_CONFIG['structTable'])) {
if (camp_db_table_exists($CC_CONFIG['treeTable'])) {
echo " * Removing database table ".$CC_CONFIG['treeTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['treeTable']);
$sql = "DROP TABLE ".$CC_CONFIG['treeTable'];
camp_install_query($sql, false);
$CC_DBC->dropSequence($CC_CONFIG['treeTable']."_id_seq");
echo "done.\n";
} else {

View File

@ -1,36 +0,0 @@
<?PHP
// Do not allow remote execution.
$arr = array_diff_assoc($_SERVER, $_ENV);
if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
header("HTTP/1.1 400");
header("Content-type: text/plain; charset=UTF-8");
echo "400 Not executable\r\n";
exit;
}
if (camp_db_table_exists($CC_CONFIG['scheduleTable'])) {
echo " * Removing database table ".$CC_CONFIG['scheduleTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['scheduleTable']);
echo "done.\n";
} else {
echo " * Skipping: database table ".$CC_CONFIG['scheduleTable']."\n";
}
if (camp_db_table_exists($CC_CONFIG['backupTable'])) {
echo " * Removing database table ".$CC_CONFIG['backupTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['backupTable']);
echo "done.\n";
} else {
echo " * Skipping: database table ".$CC_CONFIG['backupTable']."\n";
}
if (camp_db_table_exists($CC_CONFIG['playlogTable'])) {
echo " * Removing database table ".$CC_CONFIG['playlogTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['playlogTable']);
echo "done.\n";
} else {
echo " * Skipping: database table ".$CC_CONFIG['playlogTable']."\n";
}
?>

View File

@ -1,6 +1,5 @@
<?php
/**
* @author Tomas Hlava <th@red2head.com>
* @author Paul Baranowski <paul@paulbaranowski.org>
* @version $Revision: 2458 $
* @package Campcaster
@ -22,7 +21,9 @@ if (isset($arr["DOCUMENT_ROOT"]) && ($arr["DOCUMENT_ROOT"] != "") ) {
if (camp_db_table_exists($CC_CONFIG['prefTable'])) {
echo " * Removing database table ".$CC_CONFIG['prefTable']."...";
$CC_DBC->query("DROP TABLE ".$CC_CONFIG['prefTable']);
$sql = "DROP TABLE ".$CC_CONFIG['prefTable'];
camp_install_query($sql, false);
$CC_DBC->dropSequence($CC_CONFIG['prefTable']."_id_seq");
echo "done.\n";
} else {
@ -30,7 +31,7 @@ if (camp_db_table_exists($CC_CONFIG['prefTable'])) {
}
echo " * Removing all media files in ".$CC_CONFIG['storageDir']."...";
echo " * Removing all media files in ".$CC_CONFIG['storageDir']."...\n";
$d = @dir($CC_CONFIG['storageDir']);
while (is_object($d) && (false !== ($entry = $d->read()))){
if (filetype($CC_CONFIG['storageDir']."/$entry") == 'dir') {