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.
nombre VARCHAR(60) NOT NULL UNIQUE,
autor_id INT CONSTRAINT autor_id_exists REFERENCES docente(id),
descripcion VARCHAR(255),
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 (
);
CREATE TABLE enunciado_tarea (
id INTEGER PRIMARY KEY,
enunciado_id INT CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
nombre VARCHAR(40) NOT NULL,
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)
retorno INT,
tiempo_cpu FLOAT,
descripcion VARCHAR(255)
descripcion = UnicodeCol(length=255, default=None)
creado = DateTimeCol(notNone=True, default=DateTimeCol.now)
archivo = BLOBCol(default=None)
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')
# Joins
ejercicios = MultipleJoin('Ejercicio')
casos_de_prueba = MultipleJoin('CasoDePrueba')
pk = DatabaseIndex(enunciado, nombre, unique=True)
# Campos
# privado = IntCol(default=None) TODO iria en instancia_de_entrega_caso_de_prueba
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)
retorno = IntCol(default=None)
tiempo_cpu = FloatCol(default=None)
descripcion = UnicodeCol(length=255, default=None)