Domanda

Ho un problema quando si aggiorna un'applicazione Django e mysql con il Sud.

Ho cercato di fare un aggiornamento basato su SQL con il codice generato dal comando Django sqlall e ho un problema simile.

Ecco il codice 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`);

Un errore viene generato quando si aggiunge il vincolo FK:

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

Qualcuno ha un'idea?

Aggiornamento:. I valori di default in cui manca, ma anche se aggiungo il default = '' nel modello Django, la creazione di chiavi esterne non riesce

Grazie per il vostro aiuto

È stato utile?

Soluzione 3

Alla fine ho risolto il problema grazie a una soluzione. Il lavori alter ok sulla mia macchina dev, mentre non riesce sull'host. Non ho trovato il motivo, ma riesco a farlo funzionare esportando, migrando sulla mia macchina dev e reimportare.

Altri suggerimenti

Sembra che si sta tentando di aggiungere un vincolo con un simbolo / nome già esistente.

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

può essere modificata in:

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

Si è verificato lo stesso problema. E, infine, trovo che nel campo della tabella di riferimento è stato "non firmato", ma nella tabella riferimento -. Non unsigned

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top