]> git.llucax.com Git - software/sercom.git/commitdiff
Actualizar esquema de la DB con cambios de archivo en Enunciado.
authorLeandro Lucarella <llucax@gmail.com>
Mon, 26 Feb 2007 00:12:19 +0000 (00:12 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Mon, 26 Feb 2007 00:12:19 +0000 (00:12 +0000)
Como SQLObject 0.7.x no tiene hooks para hacer cosas extra al crear la DB
(como crear esas tablas intermedias locas que tenemos), no se puede usar
el tg-admin sql create para crear la base, por eso hay que hacerlo via
el script de SQL doc/schema/schema.sql. Por ahora hay que editar ese
archivo a mano cuando se cambia el modelo :S
SQLObject 0.8 (ya está en Debian) agrega hooks para salvar esa
situación, estuve experimentando pero me tira algunos errores, en cuando
lo arregle mando el parche. Además tiene varias mejoras el SQLObject
0.8 así que la idea sería laburar con ese para evitar más hacks.

doc/schema/schema.sql
sercom/model.py

index 3cc2db88aa6893972ab84b1d358336d6c0d58bf9..6bd01cda06840ec6d1160cebfc0dc0d2ca2108d7 100644 (file)
@@ -50,7 +50,10 @@ CREATE TABLE enunciado (
     nombre VARCHAR(60) NOT NULL UNIQUE,
     autor_id INT CONSTRAINT autor_id_exists REFERENCES docente(id),
     descripcion VARCHAR(255),
-    creado TIMESTAMP NOT NULL
+    creado TIMESTAMP NOT NULL,
+    archivo BLOB DEFAULT NULL,
+    archivo_name VARCHAR(255) DEFAULT NULL,
+    archivo_type VARCHAR(255) DEFAULT NULL
 );
 
 CREATE TABLE enunciado_tarea (
@@ -64,7 +67,7 @@ CREATE TABLE caso_de_prueba (
     id INTEGER PRIMARY KEY,
     enunciado_id INT CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
     nombre VARCHAR(40) NOT NULL,
-    parametros VARCHAR(255) NOT NULL,
+    parametros VARCHAR(255) DEFAULT NULL,
     retorno INT,
     tiempo_cpu FLOAT,
     descripcion VARCHAR(255)
index f9ab5a950c9533290a08ad6384e06d1dd567c4ff..9112694aeaff2dd0dafe6f1e9463fd7422e1e17c 100644 (file)
@@ -339,8 +339,8 @@ class Enunciado(SQLObject, ByObject): #{{{
     descripcion     = UnicodeCol(length=255, default=None)
     creado          = DateTimeCol(notNone=True, default=DateTimeCol.now)
     archivo         = BLOBCol(default=None)
-    archivo_name    = StringCol(default=None)
-    archivo_type    = StringCol(default=None)
+    archivo_name    = UnicodeCol(length=255, default=None)
+    archivo_type    = UnicodeCol(length=255, default=None)
     # Joins
     ejercicios      = MultipleJoin('Ejercicio')
     casos_de_prueba = MultipleJoin('CasoDePrueba')
@@ -406,7 +406,7 @@ class CasoDePrueba(SQLObject): #{{{
     pk              = DatabaseIndex(enunciado, nombre, unique=True)
     # Campos
 #    privado         = IntCol(default=None) TODO iria en instancia_de_entrega_caso_de_prueba
-    parametros      = ParamsCol(length=255)
+    parametros      = ParamsCol(length=255, default=None)
     retorno         = IntCol(default=None)
     tiempo_cpu      = FloatCol(default=None)
     descripcion     = UnicodeCol(length=255, default=None)