Files
openclaw-workspace-2026/Projects/site-survey-ai/TASK_DATABASE_PERSISTENCE.md
T
JC Beasley cb5e26b561 Update memory service with working NocoDB configuration
- Set correct table ID: mx149yctebfwvys (ai_data_Memory)
- Updated type column with SingleSelect options
- Added all required columns for corrections, preferences, episodes, decisions, validation
- Fixed column options for type, severity, status fields
2026-07-04 17:02:40 -07:00

2.6 KiB

Task: Implement Database Persistence

Description

Implement PostgreSQL database persistence for the IT Site Survey AI application. Currently, all survey data is stored in memory and lost when the application restarts.

Requirements

  1. Design a database schema for surveys and responses
  2. Add PostgreSQL integration to the Flask application
  3. Migrate existing in-memory storage to database storage
  4. Ensure all existing API endpoints continue to work
  5. Add database connection configuration
  6. Update documentation with database setup instructions

Technical Details

  • Application location: /home/jcbeasley/.openclaw/workspace/Projects/site-survey-ai/
  • Main application file: app.py
  • Current in-memory storage: surveys_db and survey_responses_db dictionaries
  • Database: PostgreSQL (install if needed)
  • Connection should be configurable via environment variables

Database Schema

surveys

  • id (UUID, PK)
  • name (VARCHAR)
  • description (TEXT)
  • client_name (VARCHAR)
  • site_name (VARCHAR)
  • created_at (TIMESTAMP)
  • status (VARCHAR)

survey_questions

  • id (UUID, PK)
  • survey_id (UUID, FK)
  • question_id (VARCHAR)
  • category (VARCHAR)
  • question_text (TEXT)
  • question_type (VARCHAR)
  • options (JSON)

survey_responses

  • id (UUID, PK)
  • survey_id (UUID, FK)
  • submitted_by (VARCHAR)
  • submitted_at (TIMESTAMP)

response_answers

  • id (UUID, PK)
  • response_id (UUID, FK)
  • question_id (VARCHAR)
  • answer_value (TEXT or JSON)

Implementation Considerations

Backward Compatibility

  • All existing API endpoints must continue working
  • No breaking changes to data structure
  • Maintain same JSON response formats

Migration Strategy

  • Seamless transition from memory to database
  • No data loss during migration
  • Fallback to memory if database unavailable

Configuration

  • Database connection via environment variables
  • Default to memory storage if no DB configured
  • Clear setup instructions for PostgreSQL

Error Handling

  • Graceful degradation if database unavailable
  • Clear error messages for connectivity issues
  • Logging for debugging database issues

Dependencies to Add

  • psycopg2-binary - PostgreSQL driver
  • sqlalchemy - ORM (optional but recommended)
  • Database connection pooling

Acceptance Criteria

  • Survey data persists across application restarts
  • All existing API endpoints continue to function identically
  • Database schema documented
  • Setup instructions added to README
  • No data loss during migration
  • Error handling for database connectivity issues
  • Fallback to memory storage if database unavailable

Priority

High - Critical for production deployment

Estimated Effort

16 hours