godcrm/tests/scripts/ensure-db-columns.sh
GOD CRM Release f89e074dd1
Some checks failed
CI / Lint / Typecheck / Test / Build (push) Has been cancelled
CI / PostgreSQL Integration Tests (push) Has been cancelled
GOD CRM — public scrubbed snapshot
Governed substrate for autonomous agents: scoped identity (passports),
audited actions, MCP workspace. Infra IPs and secrets redacted for public release.
2026-08-10 04:01:45 +03:00

40 lines
2.7 KiB
Bash
Executable file

#!/bin/bash
# Ensure all required database columns exist
# Run this before running master.scenario.js if tests fail with "no such column" errors
DB_PATH="${1:-/var/lib/business-crm-data/crm.db}"
echo "🔧 Ensuring database columns in: $DB_PATH"
# universal_tables columns
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN data_source_id INTEGER DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN source_table_name TEXT DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN sync_enabled INTEGER DEFAULT 0;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN source_id_column TEXT DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN parent_table_id INTEGER DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN show_in_nav INTEGER DEFAULT 1;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN display_name TEXT DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN folder_path TEXT DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN table_type TEXT DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN base_id TEXT DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN created_by INTEGER DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN sync_interval_minutes INTEGER DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN last_sync_at DATETIME DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE universal_tables ADD COLUMN folder_id INTEGER DEFAULT NULL;" 2>/dev/null || true
# table_columns columns
sqlite3 "$DB_PATH" "ALTER TABLE table_columns ADD COLUMN is_readonly INTEGER DEFAULT 0;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE table_columns ADD COLUMN width INTEGER DEFAULT NULL;" 2>/dev/null || true
sqlite3 "$DB_PATH" "ALTER TABLE table_columns ADD COLUMN mapping TEXT DEFAULT NULL;" 2>/dev/null || true
# widgets columns
sqlite3 "$DB_PATH" "ALTER TABLE widgets ADD COLUMN folder_id INTEGER DEFAULT NULL;" 2>/dev/null || true
echo "✅ Database columns ensured"
# Show column counts
echo ""
echo "📊 Column counts:"
echo " universal_tables: $(sqlite3 "$DB_PATH" "PRAGMA table_info(universal_tables)" | wc -l) columns"
echo " table_columns: $(sqlite3 "$DB_PATH" "PRAGMA table_info(table_columns)" | wc -l) columns"
echo " widgets: $(sqlite3 "$DB_PATH" "PRAGMA table_info(widgets)" | wc -l) columns"