feat(legacy): add db config defaults and allow custom port (#1559)

* feat(legacy): allow custom port for database connection

- fix heredoc for php72

* update test config db section

* update sample config db section

* update api db config

* use defaults for database config section

* update documentation

* more documentation for migration
This commit is contained in:
Jonas L 2022-02-04 15:03:01 +01:00 committed by GitHub
parent 71b3e6aa9d
commit 3245216869
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 95 additions and 49 deletions

View file

@ -201,17 +201,18 @@ class AirtimeInstall
public static function CreateDatabase()
{
$CC_CONFIG = Config::getConfig();
$host = $CC_CONFIG['dsn']['host'];
$port = $CC_CONFIG['dsn']['port'];
$database = $CC_CONFIG['dsn']['database'];
$username = $CC_CONFIG['dsn']['username'];
$password = $CC_CONFIG['dsn']['password'];
$hostspec = $CC_CONFIG['dsn']['hostspec'];
echo ' * Creating Airtime database: ' . $database . PHP_EOL;
$dbExists = false;
try {
$con = pg_connect('user=' . $username . ' password=' . $password . ' host=' . $hostspec);
$con = pg_connect("host={$host} port={$port} user={$username} password={$password}");
pg_query($con, 'CREATE DATABASE ' . $database . ' WITH ENCODING \'UTF8\' TEMPLATE template0 OWNER ' . $username . ';');
} catch (Exception $e) {
@ -245,7 +246,7 @@ class AirtimeInstall
}
}
public static function CreateDatabaseTables($p_dbuser, $p_dbpasswd, $p_dbname, $p_dbhost)
public static function CreateDatabaseTables($dbuser, $dbpasswd, $dbname, $dbhost, $dbport)
{
echo ' * Creating database tables' . PHP_EOL;
// Put Propel sql files in Database
@ -253,7 +254,15 @@ class AirtimeInstall
$dir = self::GetAirtimeSrcDir() . '/build/sql/';
$files = ['schema.sql', 'sequences.sql', 'views.sql', 'triggers.sql', 'defaultdata.sql'];
foreach ($files as $f) {
$command = "export PGPASSWORD={$p_dbpasswd} && /usr/bin/psql --username {$p_dbuser} --dbname {$p_dbname} --host {$p_dbhost} --file {$dir}{$f} 2>&1";
$command = <<<"END"
PGPASSWORD={$dbpasswd} \\
/usr/bin/psql \\
--host={$dbhost} \\
--port={$dbport} \\
--dbname={$dbname} \\
--username={$dbuser} \\
--file {$dir}{$f} 2>&1
END;
@exec($command, $output, $results);
}
AirtimeInstall::$databaseTablesCreated = true;

View file

@ -28,7 +28,8 @@ class TestHelper
return new Zend_Config(
[
'host' => $config['dsn']['hostspec'],
'host' => $config['dsn']['host'],
'port' => $config['dsn']['port'],
'dbname' => $config['dsn']['database'],
'username' => $config['dsn']['username'],
'password' => $config['dsn']['password'],
@ -42,10 +43,11 @@ class TestHelper
//is normally
$CC_CONFIG = Config::getConfig();
$dbhost = $CC_CONFIG['dsn']['host'];
$dbport = $CC_CONFIG['dsn']['port'];
$dbname = $CC_CONFIG['dsn']['database'];
$dbuser = $CC_CONFIG['dsn']['username'];
$dbpasswd = $CC_CONFIG['dsn']['password'];
$dbname = $CC_CONFIG['dsn']['database'];
$dbhost = $CC_CONFIG['dsn']['hostspec'];
$databaseAlreadyExists = AirtimeInstall::createDatabase();
if ($databaseAlreadyExists) {
@ -123,7 +125,7 @@ class TestHelper
$con->commit();
} else {
//Create all the database tables
AirtimeInstall::CreateDatabaseTables($dbuser, $dbpasswd, $dbname, $dbhost);
AirtimeInstall::CreateDatabaseTables($dbuser, $dbpasswd, $dbname, $dbhost, $dbport);
AirtimeInstall::UpdateDatabaseTables();
}
}