test
RN APK Build / build (push) Has been cancelled

This commit is contained in:
NishantRajputRN
2026-05-13 17:46:29 +05:30
parent fb767d19ce
commit 4eec254629
2 changed files with 58 additions and 76 deletions
+34 -6
View File
@@ -20,7 +20,7 @@
# CH_USER default default
# CH_PASSWORD optional
# CH_SECURE set to 1 to use TLS (--secure)
# SQLCMD_PATH optional full path to sqlcmd if not on PATH
# MSSQL_INSTALL_DEPS_IF_MISSING set to 1 to auto-run Microsoft ODBC + sqlcmd install when missing (sudo)
#
# Example:
# export MSSQL_HOST=sql.mycompany.internal MSSQL_USER=ro MSSQL_PASSWORD='***' MSSQL_DATABASE=sales
@@ -70,6 +70,8 @@ Options:
--ch-table TABLE ClickHouse table name
--out PATH File path (default: ./mssql_export.tsv)
--out-dir PATH Directory for migrate-db TSV files (default: ./mssql_export_all)
--install-deps-if-missing If sqlcmd is not installed, run the same steps as --install-deps first (needs sudo).
Or set env MSSQL_INSTALL_DEPS_IF_MISSING=1 for the same behavior.
Environment:
MSSQL_HOST, MSSQL_PORT, MSSQL_USER, MSSQL_PASSWORD, MSSQL_DATABASE
@@ -79,6 +81,7 @@ Environment:
CH_HOST, CH_PORT, CH_USER, CH_PASSWORD, CH_SECURE=1 for TLS
CH_DOCKER_CONTAINER optional; run clickhouse-client inside this container
SQLCMD_PATH optional; full path to sqlcmd when not on PATH
MSSQL_INSTALL_DEPS_IF_MISSING set to 1 to install mssql-tools18 when sqlcmd is missing (same as --install-deps-if-missing)
Notes:
- ClickHouse columns must match export order and types.
@@ -95,17 +98,23 @@ ensure_sqlcmd() {
if command -v sqlcmd >/dev/null 2>&1; then
return 0
fi
die "sqlcmd not found (no Microsoft mssql-tools18 on this machine yet).
die "sqlcmd not found (Microsoft mssql-tools18 is not installed).
Install it with (needs sudo; ~2 minutes):
Option A — one combined command (will prompt for sudo if needed):
$0 migrate-db --install-deps-if-missing --ch-database ... --out-dir ...
Option B — two steps:
$0 --install-deps
$0 migrate-db ...
Then re-run migrate-db. Quick check:
Option C — same shell, no flag:
ls -la /opt/mssql-tools18/bin/sqlcmd
export MSSQL_INSTALL_DEPS_IF_MISSING=1
$0 migrate-db ...
Or set SQLCMD_PATH=/full/path/to/sqlcmd if you installed sqlcmd elsewhere."
Or set SQLCMD_PATH=/full/path/to/sqlcmd"
}
ensure_clickhouse_client() {
@@ -640,9 +649,14 @@ main() {
local out_file="./mssql_export.tsv"
local out_dir="./mssql_export_all"
local tables_file="${MSSQL_TABLES_FILE:-}"
local install_deps_if_missing=0
while [[ $# -gt 0 ]]; do
case "$1" in
--install-deps-if-missing)
install_deps_if_missing=1
shift
;;
--mssql-table)
mssql_table="$2"
shift 2
@@ -681,6 +695,20 @@ main() {
esac
done
local needs_sqlcmd=0
case "$cmd" in
migrate-db | list-tables | export | export-import) needs_sqlcmd=1 ;;
esac
if [[ "$needs_sqlcmd" -eq 1 ]]; then
if [[ "${MSSQL_INSTALL_DEPS_IF_MISSING:-0}" == "1" || "$install_deps_if_missing" -eq 1 ]]; then
if ! command -v sqlcmd >/dev/null 2>&1; then
echo "$SCRIPT_NAME: sqlcmd not found; running install_deps (Microsoft ODBC + mssql-tools18; needs sudo)..." >&2
install_deps
fi
fi
fi
case "$cmd" in
export)
run_export "$mssql_table" "$mssql_query" "$out_file"