Pregunta

Tengo un problema al actualizar una aplicación de Django y MySQL con el sur.

He intentado hacer una actualización basada en SQL con el código generado por el comando Django sqlall y tengo un problema similar.

Este es el código SQL:

CREATE TABLE `programmations_basissupport` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `value` numeric(6, 0) NOT NULL
)

ALTER TABLE `programmations_concert` ADD `basis_support_id` integer AFTER program_status_id;

ALTER TABLE `programmations_concert` ADD CONSTRAINT `basis_support_id_refs_id_1e4ed8d7` FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);

se produce un error al añadir la restricción FK:

ERROR 1005 (HY000): Can't create table 'apidev_mnl.#sql-106e_632b00a' (errno: 150)

¿Alguien tiene una idea?

Actualización:. Los valores por defecto donde faltan pero incluso si añado el valor por defecto = '' en el modelo de Django, la creación de claves externas no

Gracias por su ayuda

¿Fue útil?

Solución 3

Finalmente solucionado el problema gracias a una solución. La obra bien alter en mi máquina dev, mientras que se produce un error en el host. No he encontrado la razón, pero lo logro darlo a trabajar con la exportación, la migración en mi máquina dev y volver a importar.

Otros consejos

Parece que están tratando de agregar una restricción con un símbolo / nombre que ya existe.

ALTER TABLE `programmations_concert` ADD CONSTRAINT `basis_support_id_refs_id_1e4ed8d7` FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);

se puede cambiar a:

ALTER TABLE `programmations_concert` ADD FOREIGN KEY (`basis_support_id`) REFERENCES `programmations_basissupport` (`id`);

No era el mismo problema. Y, finalmente, me parece que en el campo de la tabla referenciada fue "sin firmar", pero en el cuadro de correspondencia -. No sin signo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top