chore: bootstrap independent git workflow
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
13
examples/scripts/bootstrap-mysql.sh
Executable file
13
examples/scripts/bootstrap-mysql.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
COMPOSE_FILE="${COMPOSE_FILE:-$ROOT_DIR/docker-compose.demo.yml}"
|
||||
SERVICE_NAME="${MYSQL_SERVICE_NAME:-mysql}"
|
||||
MYSQL_ROOT_PASSWORD="${MYSQL_ROOT_PASSWORD:-dbtoolroot}"
|
||||
|
||||
docker compose -f "$COMPOSE_FILE" exec -T "$SERVICE_NAME" \
|
||||
mysql -uroot "-p$MYSQL_ROOT_PASSWORD" \
|
||||
< "$ROOT_DIR/examples/fixtures/mysql/init.sql"
|
||||
|
||||
echo "MySQL demo data seeded into qa_demo."
|
||||
14
examples/scripts/bootstrap-postgres.sh
Executable file
14
examples/scripts/bootstrap-postgres.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
COMPOSE_FILE="${COMPOSE_FILE:-$ROOT_DIR/docker-compose.demo.yml}"
|
||||
SERVICE_NAME="${POSTGRES_SERVICE_NAME:-postgres}"
|
||||
POSTGRES_USER="${POSTGRES_USER:-dbtool}"
|
||||
POSTGRES_DB="${POSTGRES_DB:-dbtool_demo}"
|
||||
|
||||
docker compose -f "$COMPOSE_FILE" exec -T "$SERVICE_NAME" \
|
||||
psql -v ON_ERROR_STOP=1 -U "$POSTGRES_USER" -d "$POSTGRES_DB" \
|
||||
< "$ROOT_DIR/examples/fixtures/postgres/init.sql"
|
||||
|
||||
echo "PostgreSQL demo data seeded into $POSTGRES_DB."
|
||||
45
examples/scripts/bootstrap-sqlite.sh
Executable file
45
examples/scripts/bootstrap-sqlite.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
SQLITE_DB_PATH="${SQLITE_DB_PATH:-$ROOT_DIR/examples/tmp/dbtool-demo.sqlite}"
|
||||
SQL_FILE="$ROOT_DIR/examples/fixtures/sqlite/init.sql"
|
||||
|
||||
mkdir -p "$(dirname "$SQLITE_DB_PATH")"
|
||||
|
||||
if command -v sqlite3 >/dev/null 2>&1; then
|
||||
sqlite3 "$SQLITE_DB_PATH" < "$SQL_FILE"
|
||||
elif command -v node >/dev/null 2>&1; then
|
||||
node --no-warnings - "$SQLITE_DB_PATH" "$SQL_FILE" <<'JS'
|
||||
const { DatabaseSync } = require('node:sqlite');
|
||||
const fs = require('fs');
|
||||
|
||||
const dbPath = process.argv[2];
|
||||
const sqlPath = process.argv[3];
|
||||
|
||||
const db = new DatabaseSync(dbPath);
|
||||
try {
|
||||
db.exec(fs.readFileSync(sqlPath, 'utf8'));
|
||||
} finally {
|
||||
db.close();
|
||||
}
|
||||
JS
|
||||
else
|
||||
python3 - "$SQLITE_DB_PATH" "$SQL_FILE" <<'PY'
|
||||
import pathlib
|
||||
import sqlite3
|
||||
import sys
|
||||
|
||||
db_path = pathlib.Path(sys.argv[1])
|
||||
sql_path = pathlib.Path(sys.argv[2])
|
||||
|
||||
conn = sqlite3.connect(db_path)
|
||||
try:
|
||||
conn.executescript(sql_path.read_text(encoding="utf-8"))
|
||||
conn.commit()
|
||||
finally:
|
||||
conn.close()
|
||||
PY
|
||||
fi
|
||||
|
||||
echo "SQLite demo data seeded into $SQLITE_DB_PATH."
|
||||
Reference in New Issue
Block a user