Skip to content

Commit bb0f156

Browse files
committed
improved postgres support + added db encoding
1 parent 9413420 commit bb0f156

File tree

3 files changed

+33
-18
lines changed

3 files changed

+33
-18
lines changed

bin/v_add_db_base

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ db_user="$user"_"$3"
1212
db_password="$4"
1313
type="$5"
1414
host=$6
15+
encoding="${7-UTF8}"
1516

1617
# Importing variables
1718
source $VESTA/conf/vars.conf
@@ -24,10 +25,10 @@ source $V_FUNC/db_func.sh
2425
#----------------------------------------------------------#
2526

2627
# Checking arg number
27-
check_args '5' "$#" 'user db db_user db_password type [host]'
28+
check_args '5' "$#" 'user db db_user db_password type [host] [encoding]'
2829

2930
# Checking argument format
30-
format_validation 'user' 'database' 'db_user' 'db_password'
31+
format_validation 'user' 'database' 'db_user' 'db_password' 'encoding'
3132

3233
# Checking db system is enabled
3334
is_system_enabled 'db'

bin/v_add_db_host

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ esac
6868

6969
# Adding host to conf
7070
echo "$new_str" >> $V_DB/$type.conf
71+
chmod 650 $V_DB/$type.conf
7172

7273

7374
#----------------------------------------------------------#

func/db_func.sh

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,8 @@ create_db_mysql() {
376376
fi
377377

378378
# Adding database & checking result
379-
$sql "CREATE DATABASE $database" >/dev/null 2>&1;code="$?"
379+
$sql "CREATE DATABASE $database CHARACTER SET $encoding" > /dev/null 2>&1
380+
code="$?"
380381
if [ '0' -ne "$code" ]; then
381382
echo "Error: Connect failed"
382383
log_event 'debug' "$E_DBHOST_UNAVAILABLE $V_EVENT"
@@ -405,7 +406,7 @@ create_db_pgsql() {
405406
done
406407

407408
export PGPASSWORD="$PASSWORD"
408-
sql="psql -h $HOST -U $USER -d $TPL -p $PORT -c"
409+
sql="psql -h $HOST -U $USER -p $PORT -c"
409410

410411
# Checking empty vars
411412
if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -422,16 +423,27 @@ create_db_pgsql() {
422423
exit $E_DBHOST_UNAVAILABLE
423424
fi
424425

425-
# Adding database & checking result
426-
$sql "CREATE DATABASE $database" >/dev/null 2>&1;code="$?"
426+
# Adding new role
427+
$sql "CREATE ROLE $db_user WITH LOGIN PASSWORD '$db_password'" >/dev/null
428+
code=$?
427429
if [ '0' -ne "$code" ]; then
428430
echo "Error: Connect failed"
429431
log_event 'debug' "$E_DBHOST_UNAVAILABLE $V_EVENT"
430432
exit $E_DBHOST_UNAVAILABLE
431433
fi
432434

433-
$sql "CREATE ROLE $db_user WITH LOGIN PASSWORD '$db_password'"
434-
$sql "GRANT ALL PRIVILEGES ON DATABASE $database TO $db_user"
435+
# Adding database & checking result
436+
sql_q="CREATE DATABASE $database OWNER $db_user" > /dev/null
437+
if [ "$TPL" = 'template0' ]; then
438+
sql_q="$sql_q ENCODING '$encoding' TEMPLATE $TPL" > /dev/null
439+
else
440+
sql_q="$sql_q TEMPLATE $TPL" > /dev/null
441+
fi
442+
$sql "$sql_q" >/dev/null
443+
444+
445+
$sql "GRANT ALL PRIVILEGES ON DATABASE $database TO $db_user" > /dev/null
446+
$sql "GRANT CONNECT ON DATABASE template1 to $db_user" > /dev/null
435447
export PGPASSWORD='pgsql'
436448
}
437449

@@ -460,7 +472,7 @@ is_mysql_host_alive() {
460472
is_pgsql_host_alive() {
461473
# Checking connection
462474
export PGPASSWORD="$db_password"
463-
sql="psql -h $host -U $db_user -d $template -p $port -c"
475+
sql="psql -h $host -U $db_user -p $port -c "
464476
$sql "SELECT VERSION()" >/dev/null 2>&1;code="$?"
465477
if [ '0' -ne "$code" ]; then
466478
echo "Error: Connect failed"
@@ -545,7 +557,7 @@ change_db_pgsql_password() {
545557
done
546558

547559
export PGPASSWORD="$PASSWORD"
548-
sql="psql -h $HOST -U $USER -d $TPL -p $PORT -c"
560+
sql="psql -h $HOST -U $USER -p $PORT -c"
549561

550562
# Checking empty vars
551563
if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -638,7 +650,7 @@ del_db_pgsql() {
638650
done
639651

640652
export PGPASSWORD="$PASSWORD"
641-
sql="psql -h $HOST -U $USER -d $TPL -p $PORT -c"
653+
sql="psql -h $HOST -U $USER -p $PORT -c"
642654

643655
# Checking empty vars
644656
if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -656,6 +668,7 @@ del_db_pgsql() {
656668
fi
657669

658670
# Deleting database & checking result
671+
$sql "REVOKE ALL PRIVILEGES ON DATABASE $database FROM $db_user">/dev/null
659672
$sql "DROP DATABASE $database" >/dev/null 2>&1;code="$?"
660673
if [ '0' -ne "$code" ]; then
661674
echo "Error: Connect failed"
@@ -666,10 +679,10 @@ del_db_pgsql() {
666679
# Deleting user
667680
check_users=$(grep "USER='$db_user'" $V_USERS/$user/db.conf |wc -l)
668681
if [ 1 -ge "$check_users" ]; then
669-
$sql "DROP ROLE $db_user" >/dev/null 2>&1
670-
else
671-
$sql "REVOKE ALL PRIVILEGES ON $database FROM $db_user">/dev/null
682+
$sql "REVOKE CONNECT ON DATABASE template1 FROM $db_user" >/dev/null
683+
$sql "DROP ROLE $db_user" >/dev/null
672684
fi
685+
673686
export PGPASSWORD='pgsql'
674687
}
675688

@@ -727,7 +740,7 @@ dump_db_pgsql() {
727740
done
728741

729742
export PGPASSWORD="$PASSWORD"
730-
sql="psql -h $HOST -U $USER -d $TPL -p $PORT -c"
743+
sql="psql -h $HOST -U $USER -p $PORT -c"
731744
dumper="pg_dump -h $HOST -U $USER -p $PORT -c -d -O -x -i -f"
732745
# Checking empty vars
733746
if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -853,7 +866,7 @@ suspend_db_pgsql() {
853866
done
854867

855868
export PGPASSWORD="$PASSWORD"
856-
sql="psql -h $HOST -U $USER -d $TPL -p $PORT -c"
869+
sql="psql -h $HOST -U $USER -p $PORT -c"
857870

858871
# Checking empty vars
859872
if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -911,7 +924,7 @@ unsuspend_db_pgsql() {
911924
done
912925

913926
export PGPASSWORD="$PASSWORD"
914-
sql="psql -h $HOST -U $USER -d $TPL -p $PORT -c"
927+
sql="psql -h $HOST -U $USER -p $PORT -c"
915928

916929
# Checking empty vars
917930
if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then
@@ -999,7 +1012,7 @@ get_disk_db_pgsql() {
9991012
done
10001013

10011014
export PGPASSWORD="$PASSWORD"
1002-
sql="psql -h $HOST -U $USER -d $TPL -p $PORT -c"
1015+
sql="psql -h $HOST -U $USER -p $PORT -c"
10031016

10041017
# Checking empty vars
10051018
if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ] || [ -z $TPL ]; then

0 commit comments

Comments
 (0)