cc-2280: install script overwrites existing db
This commit is contained in:
parent
83c1ca7c88
commit
81ba336b4b
|
@ -11,13 +11,30 @@ echo PHP_EOL."*** Database Installation ***".PHP_EOL;
|
||||||
|
|
||||||
AirtimeInstall::CreateDatabaseUser();
|
AirtimeInstall::CreateDatabaseUser();
|
||||||
|
|
||||||
AirtimeInstall::CreateDatabase();
|
$databaseExisted = AirtimeInstall::CreateDatabase();
|
||||||
|
|
||||||
AirtimeInstall::DbConnect(true);
|
AirtimeInstall::DbConnect(true);
|
||||||
|
|
||||||
AirtimeInstall::InstallPostgresScriptingLanguage();
|
AirtimeInstall::InstallPostgresScriptingLanguage();
|
||||||
|
|
||||||
AirtimeInstall::CreateDatabaseTables();
|
if ($databaseExisted){
|
||||||
|
//Database already exists. Ask the user how they want to
|
||||||
|
//proceed. Warn them that creating the database tables again
|
||||||
|
//will cause them to lose their old ones.
|
||||||
|
|
||||||
|
$userAnswer = "x";
|
||||||
|
while (!in_array($userAnswer, array("y", "Y", "n", "N", ""))) {
|
||||||
|
echo PHP_EOL."Database already exists. Do you want to delete all tables and recreate? (y/N)";
|
||||||
|
$userAnswer = trim(fgets(STDIN));
|
||||||
|
}
|
||||||
|
if (in_array($userAnswer, array("y", "Y"))) {
|
||||||
|
AirtimeInstall::CreateDatabaseTables();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//Database was just created, meaning the tables do not
|
||||||
|
//exist. Let's create them.
|
||||||
|
AirtimeInstall::CreateDatabaseTables();
|
||||||
|
}
|
||||||
|
|
||||||
AirtimeInstall::SetAirtimeVersion(AIRTIME_VERSION);
|
AirtimeInstall::SetAirtimeVersion(AIRTIME_VERSION);
|
||||||
|
|
||||||
|
|
|
@ -142,6 +142,7 @@ class AirtimeInstall
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static function CreateDatabase()
|
public static function CreateDatabase()
|
||||||
{
|
{
|
||||||
global $CC_CONFIG;
|
global $CC_CONFIG;
|
||||||
|
@ -150,8 +151,9 @@ class AirtimeInstall
|
||||||
|
|
||||||
$database = $CC_CONFIG['dsn']['database'];
|
$database = $CC_CONFIG['dsn']['database'];
|
||||||
$username = $CC_CONFIG['dsn']['username'];
|
$username = $CC_CONFIG['dsn']['username'];
|
||||||
$command = "echo \"CREATE DATABASE $database OWNER $username\" | su postgres -c psql 2>/dev/null";
|
#$command = "echo \"CREATE DATABASE $database OWNER $username\" | su postgres -c psql 2>/dev/null";
|
||||||
|
$command = "su postgres -c \"createdb $database --owner $username\"";
|
||||||
|
|
||||||
@exec($command, $output, $results);
|
@exec($command, $output, $results);
|
||||||
if ($results == 0) {
|
if ($results == 0) {
|
||||||
echo "* Database '{$CC_CONFIG['dsn']['database']}' created.".PHP_EOL;
|
echo "* Database '{$CC_CONFIG['dsn']['database']}' created.".PHP_EOL;
|
||||||
|
@ -164,6 +166,10 @@ class AirtimeInstall
|
||||||
echo "* Database '{$CC_CONFIG['dsn']['database']}' already exists.".PHP_EOL;
|
echo "* Database '{$CC_CONFIG['dsn']['database']}' already exists.".PHP_EOL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$databaseExisted = ($results != 0);
|
||||||
|
|
||||||
|
return $databaseExisted;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function InstallPostgresScriptingLanguage()
|
public static function InstallPostgresScriptingLanguage()
|
||||||
|
|
Loading…
Reference in New Issue