| Server IP : 193.86.120.172 / Your IP : 216.73.216.67 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /usr/syno/synoindex/sql/lib/ |
Upload File : |
#!/usr/bin/env bash
# Copyright (c) 2000-2014 Synology Inc. All rights reserved.
if [ -z "$UPGRADE_FOLDER_PATH" ]; then return; fi
if [ ! -z "$SYNO_LIBSYNOINDEXUTILS_DB_MIGRATION_LIB_BASE_SH" ]; then return; fi
SYNO_LIBSYNOINDEXUTILS_DB_MIGRATION_LIB_BASE_SH=yes
# Binary
PSQL="/usr/bin/psql"
# Path
UPGRADE_LIB_PATH="${UPGRADE_FOLDER_PATH}/lib/"
UPGRADE_MEDIASERVER_PATH="${UPGRADE_FOLDER_PATH}/mediaserver/"
MEDIASERVER_LEGACY_UPGRADE_PATH="${UPGRADE_MEDIASERVER_PATH}/legacy-upgrade/"
MEDIASERVER_INIT_SQL="${UPGRADE_MEDIASERVER_PATH}/mediaserver.pgsql"
MEDIASERVER_UPGRADE_BINARY_DIR="${UPGRADE_MEDIASERVER_PATH}/bin/"
UPGRADE_SYNOINDEX_PATH="${UPGRADE_FOLDER_PATH}/synoindex/"
SYNOINDEX_INIT_SQL="${UPGRADE_SYNOINDEX_PATH}/synoindex.pgsql"
SYNOINDEX_UPGRADE_SQL_PATH="${UPGRADE_SYNOINDEX_PATH}/upgrade/"
# Constants
MEDIASERVER_DATABASE="mediaserver"
INDEX_DATABASE="synoindex"
DB_ADMIN="postgres"
DB_USER="MediaIndex"
ExecSqlInDB()
{
local db_name=$1
local sql_command=$2
$PSQL -U $DB_ADMIN -d "$db_name" -c "$sql_command" > /dev/null 2>&1
}
ExecSqlInDBAndCaptureOutput()
{
local db_name=$1
local sql_command=$2
local output
output=$($PSQL -U $DB_ADMIN -d "$db_name" -qAt -c "$sql_command") || true
echo "$output"
}
ExecSqlCommand()
{
local sql_command=$1
$PSQL -U $DB_ADMIN -c "$sql_command" > /dev/null 2>&1
}
ExecSqlCommandAndCaptureOutput()
{
local sql_command=$1
local output
output=$($PSQL -U $DB_ADMIN -qAt -c "$sql_command") || true
echo "$output"
}
ImportSqlScript()
{
local db_name=$1
local script=$2
$PSQL -U $DB_ADMIN "$db_name" < "$script"
}
#######################################
# Test the existence of a column in the database
# Globals:
# None
# Arguments:
# $1: database
# $2: table
# $3: column
# Returns:
# 1: column doesn't exist
# 2: database doesn't exist
#######################################
TestColumn()
{
local db_name=$1
local table_name=$2
local column_name=$3
echo "test $column_name in $table_name table in $db_name DB"
ExecSqlInDB "$db_name" "SELECT $column_name FROM $table_name LIMIT 1"
}
#######################################
# Test the existence of a table in the database
# Globals:
# None
# Arguments:
# $1: database
# $2: table
# Returns:
# 1: table doesn't exist
# 2: database doesn't exist
#######################################
TestTable()
{
local db_name=$1
local table_name=$2
echo "test $table_name table in $db_name DB"
ExecSqlInDB "$db_name" "SELECT * FROM $table_name LIMIT 1"
}
#######################################
# Get DB version from config table
# Globals:
# None
# Arguments:
# $1: database
# Returns:
# DB_VERSION
#######################################
GetDbVersion()
{
local db_name=$1
local output
output=$(ExecSqlInDBAndCaptureOutput "$db_name" "SELECT value FROM config WHERE key = 'version'")
echo "$output"
}
#######################################
# Update DB version from config table
# Globals:
# None
# Arguments:
# $1: database
# $2: version
# Returns:
# 0: success
# 1: update failed
# 2: database doesn't exist
#######################################
UpdateDbVersion()
{
local db_name=$1
local db_version=$2
echo "update version to $db_version in $db_name DB"
ExecSqlInDB "$db_name" "UPDATE config SET value = '$db_version' WHERE key = 'version'"
}