3.4 KiB
3.4 KiB
Westech R2 Deployment — 2026-05-19
What we're deploying
- Serial No warehousing pricing + grading (High/Med/Low/Flagged)
- CPU/RAM test gates (Fail → auto Flagged + Dismantle)
- eBay scraper fix (post-2024 s-card HTML parser)
- Schema Diagram shortcut in Westech workspace
- Intake button removal from EIM dashboard
Pre-deploy (do this first)
# SSH into production
ssh -o ProxyCommand="cloudflared access ssh --hostname ssh.advante.ch" vagrant@ssh.advante.ch
# Fresh backup (already automated but take one now)
sudo bash /opt/backups/backup-eim.sh
sudo -u frappe bash /opt/backups/backup-mariadb.sh
# Verify backups exist
ls -la /opt/backups/eim/eim_$(date +%Y%m%d)*.db.xz
ls -la /opt/backups/mariadb/erpnext_$(date +%Y%m%d)*.sql.xz
Step 1: Pull code
cd /home/frappe/erpnext-bench/apps/westech_r2
sudo -u frappe git pull origin main
cd /opt/eim/app
sudo -u vagrant git pull origin main
Step 2: Migrate ERPNext schema
cd /home/frappe/erpnext-bench
sudo -u frappe bash -c 'source env/bin/activate && python3 -c "
import frappe
frappe.init(site=\"erpnext.local\", sites_path=\"/home/frappe/erpnext-bench/sites\")
frappe.connect()
from frappe.migrate import migrate
migrate()
frappe.destroy()
"'
This creates the new fields: grade, cpu_test, ram_test, assigned_price, pricing_status, etc.
Step 3: Run data migration
CRITICAL — do this immediately after migrate finishes.
Maps Device Condition Report.cosmetic_grade → new Serial No.grade:
cd /home/frappe/erpnext-bench
sudo -u frappe bash -c 'source env/bin/activate && python3 /home/frappe/erpnext-bench/apps/westech_r2/westech_r2/migrations/migrate_serial_grades.py'
Expected output:
Total Serial Nos: ~43,000
High: ~C5-C9 count
Med: ~C4 count
Low: ~C3 count
Flagged: everything else
Step 4: Restart services
# Restart ERPNext
sudo supervisorctl restart frappe-bench-web: frappe-bench-worker:
# Restart EIM
cd /opt/eim/app && sudo systemctl restart eim.service
Step 5: Verify
- Open any Serial No in ERPNext
- Confirm
Gradedropdown shows: High / Med / Low / Flagged - Set grade to High →
Recommended Priceshould populate from Item market data - Set
CPU Testto Fail → grade should auto-lock to Flagged, status = Dismantle - Westech workspace should show "Schema Diagram" shortcut
- EIM dashboard should NOT show "Intake Station" button
Rollback (if needed)
# Stop services
sudo supervisorctl stop frappe-bench-web: frappe-bench-worker:
sudo systemctl stop eim.service
# Restore MariaDB
sudo -u frappe bash -c 'cd /opt/backups/mariadb && xz -dc erpnext_YYYYMMDD_HHMMSS.sql.xz | mysql -u root -p erpnext_db'
# Restore EIM DB
sudo sqlite3 /opt/eim/eim.db ".restore /opt/backups/eim/eim_YYYYMMDD_HHMMSS.db.xz"
# Revert code
cd /home/frappe/erpnext-bench/apps/westech_r2 && sudo -u frappe git reset --hard HEAD~7
cd /opt/eim/app && sudo -u vagrant git reset --hard HEAD~1
# Restart
sudo supervisorctl start frappe-bench-web: frappe-bench-worker:
sudo systemctl start eim.service
If shit breaks
- "Grade cannot be X" errors: Migration script didn't run. Run it.
- No prices showing: eBay Pricing Settings missing Oxylabs creds. Check site_config.json.
- Fields missing:
bench migratefailed. Check logs:tail -f /home/frappe/erpnext-bench/logs/migrate.log
Contact
If anything goes wrong and you can't fix it: stop, do NOT touch production further, and get help.