@@ -95,12 +95,17 @@ ensure_sqlcmd() {
|
|||||||
if command -v sqlcmd >/dev/null 2>&1; then
|
if command -v sqlcmd >/dev/null 2>&1; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
die "sqlcmd not found. Install Microsoft tools, then retry (same shell is OK):
|
die "sqlcmd not found (no Microsoft mssql-tools18 on this machine yet).
|
||||||
|
|
||||||
|
Install it with (needs sudo; ~2 minutes):
|
||||||
|
|
||||||
$0 --install-deps
|
$0 --install-deps
|
||||||
|
|
||||||
Or: export PATH=\"\$PATH:/opt/mssql-tools18/bin\"
|
Then re-run migrate-db. Quick check:
|
||||||
Or set: SQLCMD_PATH=/path/to/sqlcmd"
|
|
||||||
|
ls -la /opt/mssql-tools18/bin/sqlcmd
|
||||||
|
|
||||||
|
Or set SQLCMD_PATH=/full/path/to/sqlcmd if you installed sqlcmd elsewhere."
|
||||||
}
|
}
|
||||||
|
|
||||||
ensure_clickhouse_client() {
|
ensure_clickhouse_client() {
|
||||||
@@ -518,25 +523,41 @@ install_deps() {
|
|||||||
$SUDO apt-get update
|
$SUDO apt-get update
|
||||||
$SUDO apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
|
$SUDO apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
|
||||||
|
|
||||||
# Microsoft ODBC + sqlcmd (Ubuntu codename: use current release; fall back if MS has no prod.list yet)
|
# Microsoft ODBC + sqlcmd
|
||||||
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc \
|
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc \
|
||||||
| $SUDO gpg --dearmor -o /etc/apt/trusted.gpg.d/microsoft.gpg
|
| $SUDO gpg --dearmor -o /etc/apt/trusted.gpg.d/microsoft.gpg
|
||||||
local ms_ub ms_url
|
|
||||||
ms_ub="$(lsb_release -rs)"
|
local ms_rel ms_url
|
||||||
ms_url="https://packages.microsoft.com/config/ubuntu/${ms_ub}/prod.list"
|
ms_rel="$(lsb_release -rs)"
|
||||||
|
if [[ "${ID:-}" == "debian" ]]; then
|
||||||
|
ms_url="https://packages.microsoft.com/config/debian/${ms_rel}/prod.list"
|
||||||
if ! curl -fsSL "$ms_url" -o /tmp/mssql-release.list 2>/dev/null; then
|
if ! curl -fsSL "$ms_url" -o /tmp/mssql-release.list 2>/dev/null; then
|
||||||
echo "$SCRIPT_NAME: No Microsoft prod.list for Ubuntu ${ms_ub}; trying 22.04 repo (packages often install on newer LTS)." >&2
|
echo "$SCRIPT_NAME: No Microsoft prod.list for Debian ${ms_rel}; trying 12 (bookworm)." >&2
|
||||||
ms_ub="22.04"
|
ms_url="https://packages.microsoft.com/config/debian/12/prod.list"
|
||||||
ms_url="https://packages.microsoft.com/config/ubuntu/${ms_ub}/prod.list"
|
|
||||||
curl -fsSL "$ms_url" -o /tmp/mssql-release.list
|
curl -fsSL "$ms_url" -o /tmp/mssql-release.list
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
ms_url="https://packages.microsoft.com/config/ubuntu/${ms_rel}/prod.list"
|
||||||
|
if ! curl -fsSL "$ms_url" -o /tmp/mssql-release.list 2>/dev/null; then
|
||||||
|
echo "$SCRIPT_NAME: No Microsoft prod.list for Ubuntu ${ms_rel}; trying 22.04 repo." >&2
|
||||||
|
ms_url="https://packages.microsoft.com/config/ubuntu/22.04/prod.list"
|
||||||
|
curl -fsSL "$ms_url" -o /tmp/mssql-release.list
|
||||||
|
fi
|
||||||
|
fi
|
||||||
$SUDO mv /tmp/mssql-release.list /etc/apt/sources.list.d/mssql-release.list
|
$SUDO mv /tmp/mssql-release.list /etc/apt/sources.list.d/mssql-release.list
|
||||||
$SUDO apt-get update
|
$SUDO apt-get update
|
||||||
ACCEPT_EULA=Y $SUDO apt-get install -y msodbcsql18 mssql-tools18 unixodbc-dev
|
ACCEPT_EULA=Y $SUDO apt-get install -y msodbcsql18 mssql-tools18 unixodbc-dev
|
||||||
|
|
||||||
|
export PATH="/opt/mssql-tools18/bin:/opt/mssql-tools/bin:${PATH:-}"
|
||||||
|
if ! command -v sqlcmd >/dev/null 2>&1; then
|
||||||
|
die "apt reported success but sqlcmd is still missing. Inspect package contents:
|
||||||
|
dpkg -L mssql-tools18 2>/dev/null | grep -E '/sqlcmd$' || true
|
||||||
|
Try: sudo apt-get install -f && sudo apt-get install -y msodbcsql18 mssql-tools18"
|
||||||
|
fi
|
||||||
|
|
||||||
local path_line='export PATH="$PATH:/opt/mssql-tools18/bin"'
|
local path_line='export PATH="$PATH:/opt/mssql-tools18/bin"'
|
||||||
grep -qF 'mssql-tools18/bin' "$HOME/.bashrc" 2>/dev/null || echo "$path_line" >>"$HOME/.bashrc" || true
|
grep -qF 'mssql-tools18/bin' "$HOME/.bashrc" 2>/dev/null || echo "$path_line" >>"$HOME/.bashrc" || true
|
||||||
grep -qF 'mssql-tools18/bin' "$HOME/.profile" 2>/dev/null || echo "$path_line" >>"$HOME/.profile" || true
|
grep -qF 'mssql-tools18/bin' "$HOME/.profile" 2>/dev/null || echo "$path_line" >>"$HOME/.profile" || true
|
||||||
export PATH="$PATH:/opt/mssql-tools18/bin"
|
|
||||||
|
|
||||||
# ClickHouse client
|
# ClickHouse client
|
||||||
$SUDO mkdir -p /etc/apt/keyrings
|
$SUDO mkdir -p /etc/apt/keyrings
|
||||||
|
|||||||
Reference in New Issue
Block a user