summaryrefslogtreecommitdiff
path: root/ar/.local/bin
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-03-13 18:14:47 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2026-03-13 18:14:47 +0900
commitc82ba8479ca3d67750a2efa21dfc5475d3826912 (patch)
tree7c503298cdd853170c3df3340b4451bb637b59bb /ar/.local/bin
parentef340c3527f3061b30c2c4082823be79809045f8 (diff)
modified bin/ddb
Diffstat (limited to 'ar/.local/bin')
-rwxr-xr-xar/.local/bin/ddb41
1 files changed, 32 insertions, 9 deletions
diff --git a/ar/.local/bin/ddb b/ar/.local/bin/ddb
index ae2ef8d..2dec830 100755
--- a/ar/.local/bin/ddb
+++ b/ar/.local/bin/ddb
@@ -273,10 +273,11 @@ if [ "$MIGRATE_MODE" = 1 ]; then
case "$confirm" in
y|Y|yes|YES)
- # Wrap SQL in transaction for safety
- query="BEGIN;
-$(cat "$sql_file_path")
-COMMIT;"
+ # Write wrapped SQL to temp file to avoid ARG_MAX limit on large migrations
+ QUERY_TMP="/tmp/ddb_query_$$.sql"
+ trap 'rm -f "$TMP_FILE" "$SQL_FILES_TMP" "$QUERY_TMP"' EXIT
+ { printf 'BEGIN;\n'; cat "$sql_file_path"; printf '\nCOMMIT;\n'; } > "$QUERY_TMP"
+ query="__MIGRATE__"
;;
*)
echo "[INFO] Migration cancelled"
@@ -333,7 +334,15 @@ else
db_name=$(docker exec "$container_id" sh -c 'echo $POSTGRES_DB' 2>/dev/null || echo "postgres")
user=$(docker exec "$container_id" sh -c 'echo $POSTGRES_USER' 2>/dev/null || echo "postgres")
- if docker exec -it "$container_id" psql -U "$user" -d "$db_name" -c "$query"; then
+ if [ "$MIGRATE_MODE" = 1 ]; then
+ docker exec -i "$container_id" psql -U "$user" -d "$db_name" < "$QUERY_TMP"
+ psql_exit=$?
+ else
+ docker exec -it "$container_id" psql -U "$user" -d "$db_name" -c "$query"
+ psql_exit=$?
+ fi
+
+ if [ "$psql_exit" -eq 0 ]; then
echo ""
echo "[SUCCESS] Query executed successfully"
else
@@ -347,10 +356,18 @@ else
user=$(docker exec "$container_id" sh -c 'echo $MYSQL_USER' 2>/dev/null || echo "root")
password=$(docker exec "$container_id" sh -c 'echo $MYSQL_ROOT_PASSWORD' 2>/dev/null || echo "")
- if [ -n "$password" ]; then
- result=$(docker exec -it "$container_id" mysql -u"$user" -p"$password" ${db_name:+-D "$db_name"} -e "$query")
+ if [ "$MIGRATE_MODE" = 1 ]; then
+ if [ -n "$password" ]; then
+ docker exec -i "$container_id" mysql -u"$user" -p"$password" ${db_name:+-D "$db_name"} < "$QUERY_TMP"
+ else
+ docker exec -i "$container_id" mysql -u"$user" ${db_name:+-D "$db_name"} < "$QUERY_TMP"
+ fi
else
- result=$(docker exec -it "$container_id" mysql -u"$user" ${db_name:+-D "$db_name"} -e "$query")
+ if [ -n "$password" ]; then
+ docker exec -it "$container_id" mysql -u"$user" -p"$password" ${db_name:+-D "$db_name"} -e "$query"
+ else
+ docker exec -it "$container_id" mysql -u"$user" ${db_name:+-D "$db_name"} -e "$query"
+ fi
fi
if [ $? -eq 0 ]; then
@@ -365,7 +382,13 @@ else
mongo)
db_name=$(docker exec "$container_id" sh -c 'echo $MONGO_INITDB_DATABASE' 2>/dev/null || echo "test")
- if docker exec -it "$container_id" mongosh "$db_name" --eval "$query"; then
+ if [ "$MIGRATE_MODE" = 1 ]; then
+ docker exec -i "$container_id" mongosh "$db_name" < "$QUERY_TMP"
+ else
+ docker exec -it "$container_id" mongosh "$db_name" --eval "$query"
+ fi
+
+ if [ $? -eq 0 ]; then
echo ""
echo "[SUCCESS] Query executed successfully"
else