diff --git a/deploy.sh b/deploy.sh index f586f0e..478daca 100755 --- a/deploy.sh +++ b/deploy.sh @@ -761,9 +761,9 @@ test_database_connection() { log_info " 测试表存在..." local tables_result tables_result=$(ssh "${REMOTE_USER}@${REMOTE_HOST}" \ - "docker exec ${DB_CONTAINER} psql -U ${DB_USER} -d ${DB_NAME} -c 'SELECT tablename FROM pg_tables WHERE schemaname = 'public' LIMIT 5;' 2>/dev/null" || echo "failed") + "docker exec ${DB_CONTAINER} psql -U ${DB_USER} -d ${DB_NAME} -t -c 'SELECT tablename FROM pg_tables WHERE schemaname = '\''public'\'' LIMIT 5;' 2>/dev/null" || echo "failed") if [[ ! "$tables_result" =~ "users" ]]; then - log_warn " users 表不存在" + log_warn " users 表不存在或查询失败: ${tables_result}" return 1 fi log_info " users 表存在" @@ -1152,7 +1152,7 @@ run_migrations() { fi log_info " 执行迁移: $filename" - if ssh "${REMOTE_USER}@${REMOTE_HOST}" "docker exec -i ${DB_CONTAINER} psql -U ${DB_USER} -d ${DB_NAME}" < "$sql_file"; then + if ssh "${REMOTE_USER}@${REMOTE_HOST}" "cat \"${sql_file}\" | docker exec -i ${DB_CONTAINER} psql -U ${DB_USER} -d ${DB_NAME}"; then log_info " 完成: $filename" else log_warn " 迁移可能已执行或失败,继续"