Esta consulta es de hace 9 años. No tome esta información como actualizada. Si tiene problemas con FacturaScripts, consulte la sección ayuda o la sección contacto
tronico_f74d39

Hola a todos, he creado un plugin con varias tablas que...

tronico_f74d39   España   06-03-2016 22:34:06   07-03-2016 15:03:53   473   [NeoRazorX]
Hola a todos, he creado un plugin con varias tablas que enlazan unas a otras con sus respectivas claves foraneas, todo funciona correcto y probadfo con miles de registros.
Pero cuando despliego el plugin desde cero (sin datos) en un facturascripts recien instalado, al activar el plugin me da éste error:

Error al ejecutar la consulta 0: Can't create table `basedatos-prueba`.`tablalibros` (errno: 150 "Foreign key constraint is incorrectly formed"). La secuencia ocupa la posición 29

Aunque luego le meto datos y va todo correcto y no sale más el error. Entiendo que una clave foranea no está bien definida pero las he revisado y no encuentro nada raro, tengo otras definidas igual y no me salta ese error.

Esta es la tabla:

<tabla>
<columna>
<nombre>idlibro</nombre>
<tipo>serial</tipo>
<nulo>NO</nulo>
</columna>
<columna>
<nombre>titulo</nombre>
<tipo>varchar(50)</tipo>
<nulo>NO</nulo>
</columna>
<columna>
<nombre>autor</nombre>
<tipo>varchar(30)</tipo>
<nulo>NO</nulo>
</columna>

<columna>
<nombre>genero</nombre>
<tipo>varchar(30)</tipo>
<nulo>NO</nulo>
</columna>
<columna>
<nombre>logo</nombre>
<tipo>text</tipo>
<nulo>YES</nulo>
</columna>
<restriccion>
<nombre>aparatos_pkey</nombre>
<consulta>PRIMARY KEY (idlibro)</consulta>
</restriccion>
<restriccion>
<nombre>relacion_autor</nombre>
<consulta>FOREIGN KEY (autor)
REFERENCES tablaautores (autor)
ON DELETE CASCADE ON UPDATE CASCADE</consulta>
</restriccion>
<restriccion>
<nombre>relacion_genero</nombre>
<consulta>FOREIGN KEY (genero)
REFERENCES tablageneros (genero)
ON DELETE CASCADE ON UPDATE CASCADE</consulta>
</restriccion>

</tabla>


¿veis algún error?
La base de datos es MySQL y las otras claves foraneas de las otras tablas estan definidas igual.
Intenta crear una tabla que depende de otra sin haber cargado esa otra.
Modifica las funciones install() de cada modelo para cargar el modelo de la tabla que necesite, es decir, si la tabla2 depende de la tabla2, en el modelo de la tabla2, el install () debería ser así:
/// hacemos un new solamente para asegurarnos que compruebe primero la tabla1
new tabla1();
return '';
Ok, ya no da error al poner los news.

Gracias por la solución.
¿Problemas con FacturaScripts?
Si tiene problemas con FacturaScripts consulte la sección ayuda o la sección contacto



Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2024 FacturaScripts
0.12483s

Soporte