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
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user