IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ORM PHP Discussion :

[Doctrine] problème de foreign key errno150


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 74
    Par défaut [Doctrine] problème de foreign key errno150
    Bonsoir à tous,
    je bosse depuis quelques jours avec le génial framework symfony & doctrine, après beaucoup de lecture j'essaye d'avancer mais je suis surtout très vite bloqué

    J'ai rédigé le schema.yml et tente de l'appliquer mais au moment de créer les contraintes y'a problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLSTATE[HY000]: General error: 1005 Can't create table '7Affaire.#sql-390_181' (errno: 150). Failing Query: "ALTER TABLE infoimmoannonce ADD CONSTRAINT infoimmoannonce_immotypebien_id_immotypebien_id FOREIGN KEY (immotypebien_id) REFERENCES immotypebien(id)". Failing Query: ALTER TABLE infoimmoannonce ADD CONSTRAINT infoimmoannonce_immotypebien_id_immotypebien_id FOREIGN KEY (immotypebien_id) REFERENCES immotypebien(id)
    mon fichier schema.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
     
    ---
    detect_relations: true
    options:
      type: InnoDB
     
    annonce:
      actAs: { Timestampable: ~ }
      columns:
        typeannonce_id:
          type: integer(4)
          notnull: true
        categorieannonce_id:
          type: integer(4)
          notnull: true
        region_id:
          type: integer(4)
          notnull: true
        departement_id:
          type: integer(4)
          notnull: true
        postal_code_id:
          type: string(5)
          notnull: true
        m_path_id:
          type: string(300)
          notnull: true
        url:
          type: string(100)
          notnull: true
        title:
          type: string(100)
          notnull: true
        content:
          type: string(1500)
          notnull: true
        sell_price: integer(4)
        tag: string(200)
        email:
          type: string(100)
          notnull: true
        password:
          type: string(100)
          notnull: true
        is_activated: boolean
        is_weekly_up: boolean
        is_urgent: boolean
        upped_at:
          type: timestamp
          notnull: true
      relations:
        typeannonce:
          foreignAlias: annonces
        categorieannonce:
          foreignAlias: annonces
        region:
          foreignAlias: annonces
        departement:
          foreignAlias: annonces
     
    categorieannonce:
      columns:
        name:
          type: string(100)
          notnull: true
     
    infoimmoannonce:
      actAs: { Timestampable: ~ }
      columns:
        immotypebien_id:
          type: integer(4)
          notnull: true
        immotypeannonce_id:
          type: integer(4)
          notnull: true
        annonce_id:
          type: integer(4)
          notnull: true
        surface:
          type: integer(4)
          notnull: true
        nb_room:
          type: integer(4)
          notnull: true
      relations:
        annonce:
          foreignAlias: annonce
        immotypeannonce:
          foreignAlias: infoimmoannonces
        immotypebien:
          foreignAlias: infoimmoannonces
     
    infovehannonce:
      actAs: { Timestampable: ~ }
      columns:
        vehtypeboite_id:
          type: integer(4)
          notnull: true
        vehtypealimentation_id:
          type: integer(4)
          notnull: true
        annonce_id:
          type: integer(4)
          unique: true
          notnull: true
        kilometrage:
          type: integer(4)
          notnull: true
        annee:
          type: integer(4)
          notnull: true
      relations:
        annonce:
          foreignAlias: annonce
        vehtypealimentation:
          foreignAlias: infovehannonces
        vehtypeboite:
          foreignAlias: infovehannonces
     
    typeannonce:
      columns:
        name:
          type: string(20)
          notnull: true
     
    vehtypealimentation:
      columns:
        name:
          type: string(20)
          unique: true
          notnull: true
     
    vehtypeboite:
      columns:
        name:
          type: string(20)
          unique: true
          notnull: true
     
    immotypebien:
      columns:
        name:
          type: string(20)
          notnull: true
     
    immotypeannonce:
      columns:
        name:
          type: string(20)
          notnull: true
     
    region:
      columns:
        name:
          type: string(50)
          notnull: true
     
    departement:
      columns:
        name:
          type: string(100)
          notnull: true
        numero:
          type: string(2)
          notnull: true
    J'ai tenté d'éxecuter le sql généré dans phpmyadmin mais il ne me donne pas plus de précision quant au problème.
    Voyez-vous une erreur grossière dans mon code ?
    Je me suis pas mal re-lus mais là je sèche ... ciao et merci !

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 74
    Par défaut
    Bonjour,

    j'ai résolus mon problème en réécrivant les lignes du schema.yml relatives aux foreign key puis surtout je flush les fichiers générés lors du doctrine:build-all.

    Il y a une commande permettant de flush tous ces ficher ?


    Vla en vous remerciant

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 74
    Par défaut
    Re,
    plutôt que d'ouvrir un autre thread je poste une nouvelle demande ici...

    j'avance doucement dans mon apprentissage mais la je bute à nouveau.
    Je m'explique, ma base est maintenant bien générée par doctrine via mon fichier schema.yml, j'ai aussi créer des data fixture et je suis maintenant en train de tenter les modules. ( fin tutorial 2 de jobeet ).
    La création du module s'est faite sans encombre mais lorsque j'accede à htt://localhost:8080/frontend_dev.php/mon_module j'ai une erreur d'acces à la base ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PDO Connection Error: SQLSTATE[28000] [1045] Access denied for user 'www-data'@'localhost' (using password: YES)
    Dans mon database.yml l'utilisateur défini est "root" pour la connexion à la base, or ici il utilise un certain "www-data".

    Un Find et Grep de "www-data" me permettrai de trouver peut-être une config que je n'ai pas encore faite ...?

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    On ne va pas te laisser faire un monologue ...

    Tu entends quoi par : "je flush les fichiers générés ... " ?

    Dans ton schéma, que j'ai lu rapidement, tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    infoimmoannonce:
       ...
      relations:
        annonce:
          foreignAlias: annonce
    Ce qui veut dire que, depuis la table annonce, tu récupères les données infoimmoannonce par ->getAnnonce(). Ce qui ne veut rien dire... Une petite erreur de recopie probablement.

    Pour la connexion à la base, c'est pour le moins étonnant. Il n'y a qu'un fichier de configuration, mais il peut y avoir plusieurs configuration en fonction de l'environnement. Tu peux toujours faire une recherche dans le projet s'il n'y a rien dans le fichier configuration. C'est peut-être une valeur par défaut s'il n'y a pas de configuration générale et que l'environnement utilisé n'est pas configuré. Je regarderais de ce côté pour commencer.

Discussions similaires

  1. Problème de Foreign key
    Par noemie12 dans le forum Adaptive Server Enterprise
    Réponses: 4
    Dernier message: 28/09/2009, 13h29
  2. problème concernant foreign key de type InnoDB
    Par cel.Saint-Louis dans le forum Outils
    Réponses: 8
    Dernier message: 05/06/2007, 23h30
  3. [SQL] FOREIGN KEY lors de la création de la base
    Par R.L. dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 31/05/2006, 15h36
  4. Problème avec foreign key
    Par bubi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/11/2005, 16h03
  5. problème avec Foreign Key [Interbase 7.5] [Delphi 2005]
    Par xenos dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/09/2005, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo