Enhance database management scripts and update configurations
- Added importdb and importinv scripts for database import functionality. - Improved dumpdb script for better error handling and output management. - Updated .gitignore to include CSV files. - Changed phpfpm service to use bash instead of ash. - Modified docker-compose.yml to expose Redis and adjust Nginx port. - Updated OpenSSL configuration for improved security settings.
This commit is contained in:
2
bin/bash
2
bin/bash
@@ -1,2 +1,2 @@
|
||||
#!/bin/bash
|
||||
docker compose exec phpfpm ash
|
||||
docker compose exec phpfpm bash
|
||||
|
||||
25
bin/dumpdb
25
bin/dumpdb
@@ -1,9 +1,20 @@
|
||||
#!/bin/bash
|
||||
export $(grep -v '^#' .env.db | xargs)
|
||||
DATE_TIME=$(date +%Y%m%d%H%M)
|
||||
echo "Dumping $MARIADB_DATABASE SQL"
|
||||
docker compose exec -T db mariadb-dump -u root -p$MARIADB_ROOT_PASSWORD $MARIADB_DATABASE > $MARIADB_DATABASE-$DATE_TIME.sql
|
||||
echo "Gzipping file...."
|
||||
gzip $MARIADB_DATABASE-$DATE_TIME.sql
|
||||
echo "Done"
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
|
||||
export $(grep -v '^#' "$PROJECT_DIR/.env.db" | xargs)
|
||||
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
DATE_TIME=$(date +%Y%m%d%H%M)
|
||||
DUMP_FILE="${PROJECT_DIR}/${MARIADB_DATABASE}-${DATE_TIME}.sql"
|
||||
|
||||
echo "Dumping ${MARIADB_DATABASE} database..."
|
||||
docker compose exec -T db mariadb-dump -u root -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DATABASE}" > "$DUMP_FILE"
|
||||
|
||||
echo "Compressing ${DUMP_FILE}..."
|
||||
gzip "$DUMP_FILE"
|
||||
|
||||
echo "Done: ${DUMP_FILE}.gz"
|
||||
|
||||
34
bin/importdb
Executable file
34
bin/importdb
Executable file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
|
||||
export $(grep -v '^#' "$PROJECT_DIR/.env.db" | xargs)
|
||||
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
if [[ $# -lt 1 ]]; then
|
||||
echo "Usage: bin/importdb <file.sql|file.sql.gz>" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
SQL_FILE="$1"
|
||||
|
||||
if [[ ! -f "$SQL_FILE" ]]; then
|
||||
echo "Error: File not found: $SQL_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Dropping and recreating database '${MARIADB_DATABASE}'..."
|
||||
docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" \
|
||||
--execute "DROP DATABASE IF EXISTS \`${MARIADB_DATABASE}\`; CREATE DATABASE \`${MARIADB_DATABASE}\`;"
|
||||
|
||||
echo "Importing ${SQL_FILE} into '${MARIADB_DATABASE}'..."
|
||||
if [[ "$SQL_FILE" == *.sql.gz ]]; then
|
||||
gunzip -c "$SQL_FILE" | docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DATABASE}"
|
||||
else
|
||||
docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DATABASE}" < "$SQL_FILE"
|
||||
fi
|
||||
|
||||
echo "Done: Database '${MARIADB_DATABASE}' imported successfully."
|
||||
30
bin/importinv
Executable file
30
bin/importinv
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
|
||||
export $(grep -v '^#' "$PROJECT_DIR/.env.db" | xargs)
|
||||
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
CSV_FILE="$PROJECT_DIR/inventory.csv"
|
||||
SQL_FILE="$SCRIPT_DIR/import_inventory.sql"
|
||||
|
||||
if [[ ! -f "$CSV_FILE" ]]; then
|
||||
echo "Error: inventory.csv not found at $CSV_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "$SQL_FILE" ]]; then
|
||||
echo "Error: import_inventory.sql not found at $SQL_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Copying inventory.csv to db container..."
|
||||
docker cp "$CSV_FILE" "$(docker compose ps -q db):/tmp/inventory.csv"
|
||||
|
||||
echo "Importing inventory into '${MARIADB_DATABASE}'..."
|
||||
docker compose exec -T db mariadb -u root -p"${MARIADB_ROOT_PASSWORD}" "${MARIADB_DATABASE}" < "$SQL_FILE"
|
||||
|
||||
echo "Done: Inventory import completed successfully."
|
||||
Reference in New Issue
Block a user