Update Config local to remote name

This commit is contained in:
2025-11-18 11:00:01 +07:00
parent 9855a6c6ed
commit 6341d712ef
12 changed files with 49 additions and 49 deletions

View File

@@ -2,15 +2,15 @@
## When to Use ## When to Use
Run database migrations for ProductionLocal environment, apply pending EF Core migrations, create backups (MANDATORY), and verify connectivity. Run database migrations for ProductionRemote environment, apply pending EF Core migrations, create backups (MANDATORY), and verify connectivity.
⚠️ **WARNING**: Production environment - exercise extreme caution. ⚠️ **WARNING**: Production environment - exercise extreme caution.
## Prerequisites ## Prerequisites
- .NET SDK installed (`dotnet --version`) - .NET SDK installed (`dotnet --version`)
- PostgreSQL accessible for ProductionLocal - PostgreSQL accessible for ProductionRemote
- Connection string in `appsettings.ProductionLocal.json` - Connection string in `appsettings.ProductionRemote.json`
- `scripts/safe-migrate.sh` available and executable - `scripts/safe-migrate.sh` available and executable
- ⚠️ Production access permissions required - ⚠️ Production access permissions required
@@ -26,7 +26,7 @@ Check: `test -f scripts/safe-migrate.sh`
### Step 2: Verify Environment Configuration ### Step 2: Verify Environment Configuration
Check: `test -f src/Managing.Api/appsettings.ProductionLocal.json` Check: `test -f src/Managing.Api/appsettings.ProductionRemote.json`
**If missing:** Check `appsettings.Production.json`, else **STOP** **If missing:** Check `appsettings.Production.json`, else **STOP**
@@ -34,7 +34,7 @@ Check: `test -f src/Managing.Api/appsettings.ProductionLocal.json`
⚠️ **CRITICAL**: Verify authorization, reviewed migrations, rollback plan, backup will be created. ⚠️ **CRITICAL**: Verify authorization, reviewed migrations, rollback plan, backup will be created.
**Ask user:** "⚠️ You are about to run migrations on ProductionLocal. Are you sure? (yes/no)" **Ask user:** "⚠️ You are about to run migrations on ProductionRemote. Are you sure? (yes/no)"
**If confirmed:** Continue **If confirmed:** Continue
@@ -42,7 +42,7 @@ Check: `test -f src/Managing.Api/appsettings.ProductionLocal.json`
### Step 4: Run Migration Script ### Step 4: Run Migration Script
Run: `./scripts/safe-migrate.sh ProductionLocal` Run: `./scripts/safe-migrate.sh ProductionRemote`
**Script performs:** Build → Check connectivity → Create DB if needed → Prompt backup (always choose 'y') → Check pending changes → Generate script → Show for review → Wait confirmation → Apply → Verify **Script performs:** Build → Check connectivity → Create DB if needed → Prompt backup (always choose 'y') → Check pending changes → Generate script → Show for review → Wait confirmation → Apply → Verify
@@ -56,7 +56,7 @@ Run: `./scripts/safe-migrate.sh ProductionLocal`
**Not executable:** `chmod +x scripts/safe-migrate.sh`, retry **Not executable:** `chmod +x scripts/safe-migrate.sh`, retry
**Database connection fails:** Verify PostgreSQL running, check connection string in `appsettings.ProductionLocal.json`, verify network/firewall/credentials, ⚠️ **WARN** production connectivity issues require immediate attention **Database connection fails:** Verify PostgreSQL running, check connection string in `appsettings.ProductionRemote.json`, verify network/firewall/credentials, ⚠️ **WARN** production connectivity issues require immediate attention
**Build fails:** Show errors (C# compilation, missing dependencies, config errors), try auto-fix (compilation errors, imports, config), if fixed re-run else **STOP** with ⚠️ **WARN** never deploy broken code **Build fails:** Show errors (C# compilation, missing dependencies, config errors), try auto-fix (compilation errors, imports, config), if fixed re-run else **STOP** with ⚠️ **WARN** never deploy broken code
@@ -73,7 +73,7 @@ Run: `./scripts/safe-migrate.sh ProductionLocal`
2. Check executable → ✅ 2. Check executable → ✅
3. Verify config → ✅ 3. Verify config → ✅
4. Safety check → User confirms 4. Safety check → User confirms
5. Run: `./scripts/safe-migrate.sh ProductionLocal` 5. Run: `./scripts/safe-migrate.sh ProductionRemote`
6. Script: Build → Connect → Backup → Generate → Review → Confirm → Apply → Verify → ✅ 6. Script: Build → Connect → Backup → Generate → Review → Confirm → Apply → Verify → ✅
7. Show backup/log locations, remind to verify functionality 7. Show backup/log locations, remind to verify functionality
@@ -88,8 +88,8 @@ Run: `./scripts/safe-migrate.sh ProductionLocal`
- ⚠️ ⚠️ ⚠️ **PRODUCTION** - Extreme caution required - ⚠️ ⚠️ ⚠️ **PRODUCTION** - Extreme caution required
- ✅ Backup MANDATORY, review script before applying, verify functionality after - ✅ Backup MANDATORY, review script before applying, verify functionality after
- ✅ Idempotent migrations - safe to run multiple times - ✅ Idempotent migrations - safe to run multiple times
- ⚠️ Environment: `ProductionLocal`, Config: `appsettings.ProductionLocal.json` - ⚠️ Environment: `ProductionRemote`, Config: `appsettings.ProductionRemote.json`
- ⚠️ Backups: `scripts/backups/ProductionLocal/`, Logs: `scripts/logs/` - ⚠️ Backups: `scripts/backups/ProductionRemote/`, Logs: `scripts/logs/`
- 📦 Keeps last 5 backups automatically - 📦 Keeps last 5 backups automatically
- 🚨 Have rollback plan, test in non-prod first, monitor after migration - 🚨 Have rollback plan, test in non-prod first, monitor after migration

View File

@@ -2,13 +2,13 @@
## When to Use ## When to Use
Run database migrations for SandboxLocal environment, apply pending EF Core migrations, create backups, and verify connectivity. Run database migrations for SandboxRemote environment, apply pending EF Core migrations, create backups, and verify connectivity.
## Prerequisites ## Prerequisites
- .NET SDK installed (`dotnet --version`) - .NET SDK installed (`dotnet --version`)
- PostgreSQL accessible for SandboxLocal - PostgreSQL accessible for SandboxRemote
- Connection string in `appsettings.SandboxLocal.json` - Connection string in `appsettings.SandboxRemote.json`
- `scripts/safe-migrate.sh` available and executable - `scripts/safe-migrate.sh` available and executable
## Execution Steps ## Execution Steps
@@ -23,13 +23,13 @@ Check: `test -f scripts/safe-migrate.sh`
### Step 2: Verify Environment Configuration ### Step 2: Verify Environment Configuration
Check: `test -f src/Managing.Api/appsettings.SandboxLocal.json` Check: `test -f src/Managing.Api/appsettings.SandboxRemote.json`
**If missing:** Check `appsettings.Sandbox.json`, else **STOP** **If missing:** Check `appsettings.Sandbox.json`, else **STOP**
### Step 3: Run Migration Script ### Step 3: Run Migration Script
Run: `./scripts/safe-migrate.sh SandboxLocal` Run: `./scripts/safe-migrate.sh SandboxRemote`
**Script performs:** Build projects → Check connectivity → Create DB if needed → Prompt backup → Check pending changes → Generate script → Apply migrations → Verify status **Script performs:** Build projects → Check connectivity → Create DB if needed → Prompt backup → Check pending changes → Generate script → Apply migrations → Verify status
@@ -43,7 +43,7 @@ Run: `./scripts/safe-migrate.sh SandboxLocal`
**Not executable:** `chmod +x scripts/safe-migrate.sh`, retry **Not executable:** `chmod +x scripts/safe-migrate.sh`, retry
**Database connection fails:** Verify PostgreSQL running, check connection string in `appsettings.SandboxLocal.json`, verify network/firewall/credentials **Database connection fails:** Verify PostgreSQL running, check connection string in `appsettings.SandboxRemote.json`, verify network/firewall/credentials
**Build fails:** Show errors (C# compilation, missing dependencies, config errors), try auto-fix (compilation errors, imports, config), if fixed re-run else **STOP** **Build fails:** Show errors (C# compilation, missing dependencies, config errors), try auto-fix (compilation errors, imports, config), if fixed re-run else **STOP**
@@ -57,7 +57,7 @@ Run: `./scripts/safe-migrate.sh SandboxLocal`
1. Verify script → ✅ 1. Verify script → ✅
2. Check executable → ✅ 2. Check executable → ✅
3. Verify config → ✅ 3. Verify config → ✅
4. Run: `./scripts/safe-migrate.sh SandboxLocal` 4. Run: `./scripts/safe-migrate.sh SandboxRemote`
5. Script: Build → Connect → Backup → Generate → Apply → Verify → ✅ 5. Script: Build → Connect → Backup → Generate → Apply → Verify → ✅
6. Show backup/log locations 6. Show backup/log locations
@@ -70,7 +70,7 @@ Run: `./scripts/safe-migrate.sh SandboxLocal`
- ✅ Backup recommended, script prompts for it - ✅ Backup recommended, script prompts for it
- ✅ Review migration script before applying - ✅ Review migration script before applying
- ✅ Idempotent migrations - safe to run multiple times - ✅ Idempotent migrations - safe to run multiple times
- ⚠️ Environment: `SandboxLocal`, Config: `appsettings.SandboxLocal.json` - ⚠️ Environment: `SandboxRemote`, Config: `appsettings.SandboxRemote.json`
- ⚠️ Backups: `scripts/backups/SandboxLocal/`, Logs: `scripts/logs/` - ⚠️ Backups: `scripts/backups/SandboxRemote/`, Logs: `scripts/logs/`
- 📦 Keeps last 5 backups automatically - 📦 Keeps last 5 backups automatically

View File

@@ -30,7 +30,7 @@ Exports OHLCV candle/price data from the `prices-bucket`.
``` ```
**Interactive Prompts:** **Interactive Prompts:**
- Select environment (SandboxLocal or ProductionLocal) - Select environment (SandboxRemote or ProductionRemote)
- Select time range (7 days, 30 days, 90 days, 1 year, all data, or custom) - Select time range (7 days, 30 days, 90 days, 1 year, all data, or custom)
**Output:** **Output:**
@@ -78,8 +78,8 @@ Imports prices-bucket CSV export data into any InfluxDB environment.
## Configuration ## Configuration
The scripts automatically read InfluxDB connection settings from: The scripts automatically read InfluxDB connection settings from:
- `src/Managing.Api/appsettings.SandboxLocal.json` - `src/Managing.Api/appsettings.SandboxRemote.json`
- `src/Managing.Api/appsettings.ProductionLocal.json` - `src/Managing.Api/appsettings.ProductionRemote.json`
**Required settings in appsettings files:** **Required settings in appsettings files:**
```json ```json
@@ -96,11 +96,11 @@ The scripts automatically read InfluxDB connection settings from:
``` ```
exports/ exports/
├── SandboxLocal/ ├── SandboxRemote/
│ └── 20241028_143022/ │ └── 20241028_143022/
│ ├── prices-bucket_data.csv │ ├── prices-bucket_data.csv
│ └── export-metadata.txt │ └── export-metadata.txt
└── ProductionLocal/ └── ProductionRemote/
└── 20241028_160000/ └── 20241028_160000/
├── prices-bucket_data.csv ├── prices-bucket_data.csv
└── export-metadata.txt └── export-metadata.txt
@@ -132,7 +132,7 @@ exports/
```bash ```bash
cd scripts/influxdb cd scripts/influxdb
./export-prices-bucket.sh ./export-prices-bucket.sh
# Select: 1 (SandboxLocal) # Select: 1 (SandboxRemote)
# Select: 5 (All data) # Select: 5 (All data)
``` ```
@@ -140,7 +140,7 @@ cd scripts/influxdb
```bash ```bash
cd scripts/influxdb cd scripts/influxdb
./export-prices-bucket.sh ./export-prices-bucket.sh
# Select: 1 (SandboxLocal) # Select: 1 (SandboxRemote)
# Select: 3 (Last 90 days) # Select: 3 (Last 90 days)
``` ```
@@ -150,14 +150,14 @@ cd scripts/influxdb
# Step 1: Export from sandbox # Step 1: Export from sandbox
./export-prices-bucket.sh ./export-prices-bucket.sh
# Select: 1 (SandboxLocal) # Select: 1 (SandboxRemote)
# Select: 5 (All data) # Select: 5 (All data)
# Step 2: Import to production # Step 2: Import to production
./import-csv-data.sh ./import-csv-data.sh
# Select source: 1 (SandboxLocal) # Select source: 1 (SandboxRemote)
# Select: Latest export timestamp # Select: Latest export timestamp
# Select target: 2 (ProductionLocal) # Select target: 2 (ProductionRemote)
# Confirm: yes # Confirm: yes
``` ```
@@ -167,7 +167,7 @@ cd scripts/influxdb
# Export current production data # Export current production data
./export-prices-bucket.sh ./export-prices-bucket.sh
# Select: 2 (ProductionLocal) # Select: 2 (ProductionRemote)
# Select: 5 (All data) # Select: 5 (All data)
# If something goes wrong, restore it: # If something goes wrong, restore it:
@@ -341,5 +341,5 @@ For issues or questions, refer to:
All scripts are located in: `/Users/oda/Desktop/Projects/managing-apps/scripts/influxdb/` All scripts are located in: `/Users/oda/Desktop/Projects/managing-apps/scripts/influxdb/`
Configuration files: Configuration files:
- Sandbox: `/Users/oda/Desktop/Projects/managing-apps/src/Managing.Api/appsettings.SandboxLocal.json` - Sandbox: `/Users/oda/Desktop/Projects/managing-apps/src/Managing.Api/appsettings.SandboxRemote.json`
- Production: `/Users/oda/Desktop/Projects/managing-apps/src/Managing.Api/appsettings.ProductionLocal.json` - Production: `/Users/oda/Desktop/Projects/managing-apps/src/Managing.Api/appsettings.ProductionRemote.json`

View File

@@ -55,19 +55,19 @@ echo " InfluxDB Prices Data Export"
echo "======================================" echo "======================================"
echo "" echo ""
echo "Select environment:" echo "Select environment:"
echo "1) SandboxLocal" echo "1) SandboxRemote"
echo "2) ProductionLocal" echo "2) ProductionRemote"
echo "" echo ""
read -p "Enter your choice (1 or 2): " ENV_CHOICE read -p "Enter your choice (1 or 2): " ENV_CHOICE
case $ENV_CHOICE in case $ENV_CHOICE in
1) 1)
ENVIRONMENT="SandboxLocal" ENVIRONMENT="SandboxRemote"
APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.SandboxLocal.json" APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.SandboxRemote.json"
;; ;;
2) 2)
ENVIRONMENT="ProductionLocal" ENVIRONMENT="ProductionRemote"
APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.ProductionLocal.json" APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.ProductionRemote.json"
;; ;;
*) *)
error "Invalid choice. Please run the script again and select 1 or 2." error "Invalid choice. Please run the script again and select 1 or 2."

View File

@@ -131,19 +131,19 @@ info "CSV file: $(basename "$CSV_FILE") ($CSV_SIZE)"
# Select target environment for import # Select target environment for import
echo "" echo ""
echo "Select TARGET environment for import:" echo "Select TARGET environment for import:"
echo "1) SandboxLocal" echo "1) SandboxRemote"
echo "2) ProductionLocal" echo "2) ProductionRemote"
echo "" echo ""
read -p "Enter your choice (1 or 2): " TARGET_ENV_CHOICE read -p "Enter your choice (1 or 2): " TARGET_ENV_CHOICE
case $TARGET_ENV_CHOICE in case $TARGET_ENV_CHOICE in
1) 1)
TARGET_ENVIRONMENT="SandboxLocal" TARGET_ENVIRONMENT="SandboxRemote"
APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.SandboxLocal.json" APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.SandboxRemote.json"
;; ;;
2) 2)
TARGET_ENVIRONMENT="ProductionLocal" TARGET_ENVIRONMENT="ProductionRemote"
APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.ProductionLocal.json" APPSETTINGS_FILE="$SRC_DIR/Managing.Api/appsettings.ProductionRemote.json"
;; ;;
*) *)
error "Invalid choice. Please run the script again and select 1 or 2." error "Invalid choice. Please run the script again and select 1 or 2."

View File

@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# Script to import privy-users.csv into WhitelistAccounts table # Script to import privy-users.csv into WhitelistAccounts table
# Uses connection string from appsettings.ProductionLocal.json # Uses connection string from appsettings.ProductionRemote.json
set -e # Exit on error set -e # Exit on error
@@ -9,7 +9,7 @@ set -e # Exit on error
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
CSV_FILE="$SCRIPT_DIR/privy-users.csv" CSV_FILE="$SCRIPT_DIR/privy-users.csv"
SETTINGS_FILE="$PROJECT_ROOT/src/Managing.Api/appsettings.ProductionLocal.json" SETTINGS_FILE="$PROJECT_ROOT/src/Managing.Api/appsettings.ProductionRemote.json"
# Check if CSV file exists # Check if CSV file exists
if [ ! -f "$CSV_FILE" ]; then if [ ! -f "$CSV_FILE" ]; then

View File

@@ -82,11 +82,11 @@ log "🚀 Starting safe migration for environment: $ENVIRONMENT"
# Validate environment # Validate environment
case $ENVIRONMENT in case $ENVIRONMENT in
"Development"|"SandboxLocal"|"ProductionLocal"|"Oda") "Development"|"SandboxRemote"|"ProductionRemote"|"Oda")
log "✅ Environment '$ENVIRONMENT' is valid" log "✅ Environment '$ENVIRONMENT' is valid"
;; ;;
*) *)
error "❌ Invalid environment '$ENVIRONMENT'. Use: Development, SandboxLocal, ProductionLocal, or Oda" error "❌ Invalid environment '$ENVIRONMENT'. Use: Development, SandboxRemote, ProductionRemote, or Oda"
;; ;;
esac esac

View File

@@ -47,7 +47,7 @@ The following configuration files have been updated with Orleans grain control s
- `appsettings.Oda.json` - Oda environment (RunOrleansGrains: true) - `appsettings.Oda.json` - Oda environment (RunOrleansGrains: true)
- `appsettings.Oda-docker.json` - Oda Docker environment (RunOrleansGrains: true) - `appsettings.Oda-docker.json` - Oda Docker environment (RunOrleansGrains: true)
- `appsettings.Sandbox.json` - Sandbox environment (RunOrleansGrains: true) - `appsettings.Sandbox.json` - Sandbox environment (RunOrleansGrains: true)
- `appsettings.SandboxLocal.json` - Local Sandbox environment (RunOrleansGrains: true) - `appsettings.SandboxRemote.json` - Local Sandbox environment (RunOrleansGrains: true)
- `appsettings.Production.json` - Production environment (RunOrleansGrains: true) - `appsettings.Production.json` - Production environment (RunOrleansGrains: true)
## Use Cases ## Use Cases