mirror of
https://github.com/twentyhq/twenty.git
synced 2024-11-22 11:43:34 +03:00
Enhance postgre sql setup script and documentation for various distros 7636 (#7637)
Co-authored-by: Your Name <you@example.com>
This commit is contained in:
parent
bdbe495b2c
commit
a4e52c5ba0
@ -20,7 +20,7 @@ handle_error () {
|
||||
exit 1
|
||||
}
|
||||
|
||||
read -p "This script uses sudo to install postgresql, curl and change different settings, do you want to run this script? [y/N]" AGREEMENT
|
||||
read -p "This script uses sudo to install PostgreSQL, curl, and configure the system. Do you want to run this script? [y/N] " AGREEMENT
|
||||
|
||||
if ! echo "$AGREEMENT" | grep -iq "^y"; then
|
||||
exit 1
|
||||
@ -55,28 +55,68 @@ echo_header $BLUE " DATABASE SETUP"
|
||||
|
||||
PG_MAIN_VERSION=15
|
||||
PG_GRAPHQL_VERSION=1.5.6
|
||||
TARGETARCH=$(dpkg --print-architecture)
|
||||
|
||||
# Install PostgresSQL
|
||||
echo_header $GREEN "Step [1/4]: Installing PostgreSQL..."
|
||||
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
||||
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
|
||||
sudo apt update -y || handle_error "Failed to update package list."
|
||||
sudo apt install -y postgresql-$PG_MAIN_VERSION postgresql-contrib-$PG_MAIN_VERSION || handle_error "Failed to install PostgreSQL."
|
||||
sudo apt install -y curl || handle_error "Failed to install curl."
|
||||
|
||||
# Install pg_graphql extensions
|
||||
echo_header $GREEN "Step [2/4]: Installing GraphQL for PostgreSQL..."
|
||||
curl -L https://github.com/supabase/pg_graphql/releases/download/v$PG_GRAPHQL_VERSION/pg_graphql-v$PG_GRAPHQL_VERSION-pg$PG_MAIN_VERSION-$TARGETARCH-linux-gnu.deb -o pg_graphql.deb || handle_error "Failed to download pg_graphql package."
|
||||
sudo dpkg --install pg_graphql.deb || handle_error "Failed to install pg_graphql package."
|
||||
rm pg_graphql.deb
|
||||
|
||||
# Start postgresql service
|
||||
echo_header $GREEN "Step [3/4]: Starting PostgreSQL service..."
|
||||
if sudo service postgresql start; then
|
||||
echo "PostgreSQL service started successfully."
|
||||
if command -v dpkg &> /dev/null; then
|
||||
TARGETARCH=$(dpkg --print-architecture)
|
||||
else
|
||||
handle_error "Failed to start PostgreSQL service."
|
||||
TARGETARCH=$(uname -m)
|
||||
fi
|
||||
|
||||
# Detect package manager and set up PostgreSQL and curl
|
||||
if command -v dpkg &> /dev/null; then
|
||||
PACKAGE_MANAGER="dpkg"
|
||||
elif command -v pacman &> /dev/null; then
|
||||
PACKAGE_MANAGER="pacman"
|
||||
else
|
||||
handle_error "Unsupported package manager. This script only supports dpkg and pacman."
|
||||
fi
|
||||
|
||||
# Installation for Debian/Ubuntu
|
||||
if [ "$PACKAGE_MANAGER" = "dpkg" ]; then
|
||||
echo_header $GREEN "Step [1/4]: Installing PostgreSQL on Debian/Ubuntu..."
|
||||
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
||||
wget -qO- https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /etc/apt/trusted.gpg.d/pgdg.asc &>/dev/null
|
||||
sudo apt update -y || handle_error "Failed to update package list."
|
||||
sudo apt install -y postgresql-$PG_MAIN_VERSION postgresql-contrib-$PG_MAIN_VERSION curl || handle_error "Failed to install PostgreSQL or curl."
|
||||
|
||||
echo_header $GREEN "Step [2/4]: Installing GraphQL for PostgreSQL on Debian/Ubuntu..."
|
||||
curl -L https://github.com/supabase/pg_graphql/releases/download/v$PG_GRAPHQL_VERSION/pg_graphql-v$PG_GRAPHQL_VERSION-pg$PG_MAIN_VERSION-$TARGETARCH-linux-gnu.deb -o pg_graphql.deb || handle_error "Failed to download pg_graphql package."
|
||||
sudo dpkg --install pg_graphql.deb || handle_error "Failed to install pg_graphql package."
|
||||
rm pg_graphql.deb
|
||||
|
||||
echo_header $GREEN "Step [3/4]: Starting PostgreSQL service..."
|
||||
if sudo service postgresql start; then
|
||||
echo "PostgreSQL service started successfully."
|
||||
else
|
||||
handle_error "Failed to start PostgreSQL service."
|
||||
fi
|
||||
|
||||
# Installation for Arch
|
||||
elif [ "$PACKAGE_MANAGER" = "pacman" ]; then
|
||||
echo_header $GREEN "Step [1/4]: Installing PostgreSQL on Arch..."
|
||||
sudo pacman -Syu --noconfirm || handle_error "Failed to update package list."
|
||||
sudo pacman -S postgresql postgresql-libs curl --noconfirm || handle_error "Failed to install PostgreSQL or curl."
|
||||
|
||||
echo_header $GREEN "Step [2/4]: Installing GraphQL for PostgreSQL on Arch..."
|
||||
if ! yay -S --noconfirm pg_graphql; then
|
||||
handle_error "Failed to install pg_graphql package from AUR."
|
||||
fi
|
||||
|
||||
echo_header $GREEN "Step [3/4]: Initializing and starting PostgreSQL service..."
|
||||
if sudo -u postgres sh -c 'test "$(ls -A /var/lib/postgres/data 2>/dev/null)"'; then
|
||||
echo "PostgreSQL data directory already contains data. Skipping initdb."
|
||||
else
|
||||
sudo -iu postgres initdb --locale en_US.UTF-8 -D /var/lib/postgres/data || handle_error "Failed to initialize PostgreSQL database."
|
||||
fi
|
||||
|
||||
if [ "$(ps -p 1 -o comm=)" = "systemd" ]; then
|
||||
sudo systemctl enable postgresql
|
||||
sudo systemctl start postgresql || handle_error "Failed to start PostgreSQL service."
|
||||
else
|
||||
sudo mkdir -p /run/postgresql
|
||||
sudo chown postgres:postgres /run/postgresql
|
||||
sudo -iu postgres pg_ctl -D /var/lib/postgres/data -l /var/lib/postgres/logfile start || handle_error "Failed to start PostgreSQL service."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Run the init.sql to setup database
|
||||
|
Loading…
Reference in New Issue
Block a user