SQLSTATE[HY000]: General error: 1005 Can’t create table

Je??eli przy pr??bie wywo??ania polecenia:

$symfony doctrine:insert-sql

Wyskakuje Ci b???d

SQLSTATE[HY000]: General error: 1005 Can't create table 'TwojaBazaDanych.#sql-6c_2d' (errno: 121)

To znaczy ??e mysql nie mo??e utworzy? relacji mi?dzy obiektami, z trywialnego powodu pole klucza obcego jest r????nego typu od pola powi?zanego w lokalnej tabeli.


Np:

 INT => BIGINT

Doctrine jako domy??lny typ na Primiary Key wybiera integer(8) czyli BIGINT. Zatem je??li zdefiniowa??e?? klucz obcy w schemacie obiektu o innej wielko??ci Integera To nie zadzia??a.

schema.yml typ w MySQl typ w PostgreSQL
integer integer int/serial
integer(1) tinyint smallint/serial
integer(2) smallint smallint/serial
integer(3) mediumint int/serial
integer(4) int int/serial
integer(5) bigint bigint/bigserial

Je??eli po poprawkach schematu (config/doctrine/schema.yml) i przeprowadzeniu operacji:

$symfony doctrine:build --model
$symfony doctrine:build --sql
$symfony doctrine:insert-sql

Jeste?? pewien ??e b???d??w ju?? nie ma w schemacie a w phpMyAdminie pola nie s? identyczne. To polecam:

DROP DATABASE TwojaBazaDanych;
CREATE DATABASE TwojaBazaDanych;

2 myśli nt. „SQLSTATE[HY000]: General error: 1005 Can’t create table

  1. Damian

    Zmieni???m w schema.sql wszystkie typy na BIGINT. po wykonaniu polecen inser-sql dalej zwraca te nsam b???d. Jaka mo??e by? jeszcze przyczyna ?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>