refactor: update seed script and Makefile for company architecture
Seed Script Updates: - Add create_demo_companies() function to seed 3 demo companies with owners - Update create_demo_vendors() to link vendors to companies (not create owners) - Fix VendorTheme to use JSON colors format (not individual columns) - Fix VendorDomain to use 'domain' field (not 'domain_name') - Update seed summary to show company information - Update credentials output to show company owners instead of vendor owners Makefile Refactoring: - Separate production initialization from demo data seeding - Update init-prod to run 4 steps: 1. Create admin user + alerts (init_production.py) 2. Initialize log settings (init_log_settings.py) 3. Create CMS defaults (create_default_content_pages.py) 4. Create platform pages (create_platform_pages.py) - Update db-setup workflow: migrate-up + init-prod + seed-demo - Update db-reset workflow: migrate-down + migrate-up + init-prod + seed-demo-reset - Add utility commands: create-cms-defaults, create-platform-pages, init-logging - Enhance help documentation with clear production vs demo distinction Architecture: - init-prod: Production-safe platform initialization (run in prod + dev) - seed-demo: Demo data only (NEVER run in production) - Clear separation of concerns for production deployment
This commit is contained in:
99
Makefile
99
Makefile
@@ -90,10 +90,24 @@ migrate-status:
|
||||
# DATABASE INITIALIZATION & SEEDING
|
||||
# =============================================================================
|
||||
|
||||
# Production initialization - Run on first setup (production OR development)
|
||||
init-prod:
|
||||
@echo "🔧 Initializing production database..."
|
||||
@echo ""
|
||||
@echo "Step 1/4: Creating admin user and platform alerts..."
|
||||
$(PYTHON) scripts/init_production.py
|
||||
@echo ""
|
||||
@echo "Step 2/4: Initializing log settings..."
|
||||
$(PYTHON) scripts/init_log_settings.py
|
||||
@echo ""
|
||||
@echo "Step 3/4: Creating default CMS content pages..."
|
||||
$(PYTHON) scripts/create_default_content_pages.py
|
||||
@echo ""
|
||||
@echo "Step 4/4: Creating platform pages and landing..."
|
||||
$(PYTHON) scripts/create_platform_pages.py
|
||||
@echo ""
|
||||
@echo "✅ Production initialization completed"
|
||||
@echo "✨ Platform is ready for production OR development"
|
||||
|
||||
# Demo data seeding - Cross-platform using Python to set environment
|
||||
seed-demo:
|
||||
@@ -122,23 +136,35 @@ else
|
||||
SEED_MODE=reset $(PYTHON) scripts/seed_demo.py
|
||||
endif
|
||||
|
||||
db-setup: migrate-up init-prod create-cms-defaults seed-demo
|
||||
db-setup: migrate-up init-prod seed-demo
|
||||
@echo ""
|
||||
@echo "✅ Database setup complete!"
|
||||
@echo "Run 'make dev' to start development server"
|
||||
@echo "✨ Run 'make dev' to start development server"
|
||||
|
||||
db-reset: migrate-down migrate-up seed-demo-reset
|
||||
db-reset: migrate-down migrate-up init-prod seed-demo-reset
|
||||
@echo ""
|
||||
@echo "✅ Database completely reset!"
|
||||
|
||||
backup-db:
|
||||
@echo "Creating database backup..."
|
||||
@$(PYTHON) scripts/backup_database.py
|
||||
|
||||
# CMS default content pages
|
||||
# Utility commands (usually not needed - init-prod handles these)
|
||||
create-cms-defaults:
|
||||
@echo "📄 Creating default CMS content pages..."
|
||||
$(PYTHON) scripts/create_default_content_pages.py
|
||||
@echo "✅ CMS defaults created"
|
||||
|
||||
create-platform-pages:
|
||||
@echo "🏠 Creating platform pages and landing..."
|
||||
$(PYTHON) scripts/create_platform_pages.py
|
||||
@echo "✅ Platform pages created"
|
||||
|
||||
init-logging:
|
||||
@echo "📝 Initializing log settings..."
|
||||
$(PYTHON) scripts/init_log_settings.py
|
||||
@echo "✅ Log settings initialized"
|
||||
|
||||
# =============================================================================
|
||||
# TESTING
|
||||
# =============================================================================
|
||||
@@ -320,12 +346,11 @@ help:
|
||||
@echo " migrate-up - Apply pending migrations"
|
||||
@echo " migrate-down - Rollback last migration"
|
||||
@echo " migrate-status - Show migration status"
|
||||
@echo " init-prod - Initialize production essentials"
|
||||
@echo " seed-demo - Seed demo data (3 vendors)"
|
||||
@echo " seed-demo-minimal - Seed minimal demo (1 vendor)"
|
||||
@echo " seed-demo-reset - DELETE ALL and reseed"
|
||||
@echo " create-cms-defaults - Create default CMS content pages"
|
||||
@echo " db-setup - Full dev setup (migrate + init + cms + seed)"
|
||||
@echo " init-prod - Initialize platform (admin, logging, CMS, pages)"
|
||||
@echo " seed-demo - Seed demo data (3 companies + vendors)"
|
||||
@echo " seed-demo-minimal - Seed minimal demo (1 company + vendor)"
|
||||
@echo " seed-demo-reset - DELETE ALL demo data and reseed"
|
||||
@echo " db-setup - Full dev setup (migrate + init-prod + seed-demo)"
|
||||
@echo " backup-db - Backup database"
|
||||
@echo ""
|
||||
@echo "=== TESTING ==="
|
||||
@@ -372,30 +397,44 @@ help-db:
|
||||
@echo " migrate-down - Rollback last migration"
|
||||
@echo " migrate-status - Show current status and history"
|
||||
@echo ""
|
||||
@echo "INITIALIZATION:"
|
||||
@echo " init-prod - Create admin user + settings (SAFE for production)"
|
||||
@echo "PLATFORM INITIALIZATION (Production + Development):"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@echo " init-prod - Complete platform setup (4 steps):"
|
||||
@echo " 1. Create admin user + alerts"
|
||||
@echo " 2. Initialize log settings"
|
||||
@echo " 3. Create CMS defaults"
|
||||
@echo " 4. Create platform pages"
|
||||
@echo ""
|
||||
@echo "DEMO DATA (Development only):"
|
||||
@echo " seed-demo - Create 3 demo vendors with data"
|
||||
@echo " seed-demo-minimal - Create 1 demo vendor only"
|
||||
@echo " seed-demo-reset - DELETE ALL data and reseed (DANGEROUS!)"
|
||||
@echo "DEMO DATA (Development Only - NEVER in production):"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@echo " seed-demo - Create 3 demo companies + vendors + data"
|
||||
@echo " seed-demo-minimal - Create 1 demo company + vendor only"
|
||||
@echo " seed-demo-reset - DELETE ALL demo data and reseed (DANGEROUS!)"
|
||||
@echo ""
|
||||
@echo "CMS CONTENT:"
|
||||
@echo " create-cms-defaults - Create default content pages (about, faq, etc.)"
|
||||
@echo "UTILITY COMMANDS (Advanced - usually not needed):"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@echo " create-cms-defaults - Re-create CMS pages only"
|
||||
@echo " create-platform-pages - Re-create platform pages only"
|
||||
@echo " init-logging - Re-initialize logging only"
|
||||
@echo ""
|
||||
@echo "WORKFLOWS:"
|
||||
@echo " db-setup - Complete dev setup (migrate + init + cms + seed)"
|
||||
@echo " db-reset - Nuclear option: rollback + reset + reseed"
|
||||
@echo "QUICK WORKFLOWS:"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@echo " db-setup - Full dev setup (migrate + init-prod + seed-demo)"
|
||||
@echo " db-reset - Nuclear reset (rollback + init-prod + reseed)"
|
||||
@echo ""
|
||||
@echo "TYPICAL FIRST-TIME SETUP:"
|
||||
@echo " 1. make migrate-up # Apply migrations"
|
||||
@echo " 2. make init-prod # Create admin user"
|
||||
@echo " 3. make create-cms-defaults # Create CMS pages"
|
||||
@echo " 4. make seed-demo # Add demo data"
|
||||
@echo " 5. make dev # Start developing"
|
||||
@echo "TYPICAL FIRST-TIME SETUP (Development):"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@echo " 1. make migrate-up # Apply database schema"
|
||||
@echo " 2. make init-prod # Initialize platform (admin, CMS, logging, pages)"
|
||||
@echo " 3. make seed-demo # Add demo data (companies, vendors, products)"
|
||||
@echo " 4. make dev # Start development server"
|
||||
@echo ""
|
||||
@echo " OR simply: make db-setup # Does all the above!"
|
||||
@echo ""
|
||||
@echo "PRODUCTION SETUP:"
|
||||
@echo "──────────────────────────────────────────────────────────"
|
||||
@echo " 1. Set ENV=production or ENVIRONMENT=production"
|
||||
@echo " 2. make migrate-up"
|
||||
@echo " 3. make init-prod (with secure credentials in .env)"
|
||||
@echo " 4. Create vendors via admin panel"
|
||||
@echo " 2. make migrate-up # Apply database schema"
|
||||
@echo " 3. make init-prod # Initialize platform (with .env credentials)"
|
||||
@echo " 4. Create companies via admin panel"
|
||||
@echo " 5. DO NOT run seed-demo in production!"
|
||||
Reference in New Issue
Block a user