- Configure workspace Git repository with comprehensive .gitignore - Add Odoo as submodule for ERP reference code - Include documentation: SETUP.md, GIT-STRUCTURE.md - Add gitignore templates for projects (backend, frontend, database) - Structure supports independent repos per project/subproject level Workspace includes: - core/ - Reusable patterns, modules, orchestration system - projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.) - knowledge-base/ - Reference code and patterns (includes Odoo submodule) - devtools/ - Development tools and templates - customers/ - Client implementations template 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
62 lines
2.6 KiB
SQL
62 lines
2.6 KiB
SQL
-- =====================================================
|
|
-- Migration: Add Pedagogical Content Columns to Exercises
|
|
-- Task: DB-125
|
|
-- Date: 2025-11-19
|
|
-- Description: Agrega 4 columnas TEXT para contenido pedagógico expandido
|
|
-- Scope: 15 ejercicios en módulos 1-3 (módulos 4-5 pendientes en DB-126)
|
|
-- Author: Database Agent
|
|
-- =====================================================
|
|
|
|
SET search_path TO educational_content, public;
|
|
|
|
-- Verificar que estamos en el schema correcto
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.tables
|
|
WHERE table_schema = 'educational_content'
|
|
AND table_name = 'exercises'
|
|
) THEN
|
|
RAISE EXCEPTION 'Tabla educational_content.exercises no encontrada';
|
|
END IF;
|
|
END $$;
|
|
|
|
-- Agregar columnas (idempotente con IF NOT EXISTS)
|
|
ALTER TABLE educational_content.exercises
|
|
ADD COLUMN IF NOT EXISTS objective TEXT,
|
|
ADD COLUMN IF NOT EXISTS how_to_solve TEXT,
|
|
ADD COLUMN IF NOT EXISTS recommended_strategy TEXT,
|
|
ADD COLUMN IF NOT EXISTS pedagogical_notes TEXT;
|
|
|
|
-- Agregar comentarios (siempre se ejecutan)
|
|
COMMENT ON COLUMN educational_content.exercises.objective IS
|
|
'Objetivo pedagógico expandido del ejercicio (200-500 palabras). Describe qué aprenderá el estudiante y por qué es importante según el modelo de comprensión lectora de Daniel Cassany.';
|
|
|
|
COMMENT ON COLUMN educational_content.exercises.how_to_solve IS
|
|
'Guía detallada de cómo resolver el ejercicio (300-800 palabras). Pasos pedagógicos, estrategias de pensamiento, y consejos para completar exitosamente el ejercicio.';
|
|
|
|
COMMENT ON COLUMN educational_content.exercises.recommended_strategy IS
|
|
'Estrategias recomendadas para resolver eficientemente (100-300 palabras). Tips, trucos, y mejores prácticas para estudiantes.';
|
|
|
|
COMMENT ON COLUMN educational_content.exercises.pedagogical_notes IS
|
|
'Notas metodológicas para educadores (100-400 palabras). Contexto pedagógico, relación con competencias, y alineación con modelo Cassany.';
|
|
|
|
-- Validación post-migration
|
|
DO $$
|
|
DECLARE
|
|
col_count INTEGER;
|
|
BEGIN
|
|
SELECT COUNT(*)
|
|
INTO col_count
|
|
FROM information_schema.columns
|
|
WHERE table_schema = 'educational_content'
|
|
AND table_name = 'exercises'
|
|
AND column_name IN ('objective', 'how_to_solve', 'recommended_strategy', 'pedagogical_notes');
|
|
|
|
IF col_count = 4 THEN
|
|
RAISE NOTICE '✓ Migration DB-125 successful: 4 pedagogical columns added to exercises table';
|
|
ELSE
|
|
RAISE EXCEPTION '✗ Migration DB-125 failed: Expected 4 columns, found %', col_count;
|
|
END IF;
|
|
END $$;
|