2010-11-26 23 views
0

Mise à jour
retour j'aller à une version précédente de la doctrine et maintenant l'erreur est:Erreur avec l'outil de ligne de commande doctrine

Invalid schema element named "Roles" at path "RoleResource->columns->relations" 

c'est petit morceau le même fichier YAML (voir ci-dessous)


J'ai un problème avec l'outil de ligne de commande de doctrine. Quand je donne la commande "build-all-reload", je suis te erreur suivant:

SQLSTATE[42000]: Syntax error or access violation: 1072 Key column 'role_id' doesn't exist in table. Failing Query: "CREATE TABLE resource (id BIGINT AUTO_INCREMENT, name VARCHAR(20), INDEX role_id_idx (role_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = INNODB". Failing Query: CREATE TABLE resource (id BIGINT AUTO_INCREMENT, name VARCHAR(20), INDEX role_id_idx (role_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = INNODB 

Mon fichier YAML ressemble à ceci:

detect_relations: true 

options: 
    type: INNODB 
    collate: utf8_general_ci 
    charset: utf8 

Log: 
    columns: 
    id: 
     type: integer 
     primary: true 
     autoincrement: true 
    priority: tinyint 
    priorityName: string(10) 
    title: string(250) 
    message: text 
    actAs: 
    Timestampable: 
     created: 
     type: timestamp 
     format: Y-m-d H:i:s 
     updated: 
     disabled: true 

User: 
    columns: 
    id: 
     type: integer 
     primary: true 
     autoincrement: true 
    username: string(50) 
    password: string(40) 
    actAs: 
    Timestampable: 
     created: 
     type: timestamp 
     format: Y-m-d H:i:s 
     updated: 
     type: timestamp 
     format: Y-m-d H:i:s 

Role: 
    columns: 
    id: 
     type: integer 
     primary: true 
     autoincrement: true 
    name: string(20) 
    attributes: 
    export: all 
    validate: true 

RoleResource: 
    columns: 
    role_id: 
     type: integer 
     primary: true 
    resource_id: 
     type: integer 
     primary: true 
    relations: 
     Role: 
     foreignAlias: RoleResource 
     Resource: 
     foreignAlias: RoleResource 

Resource: 
    columns: 
    id: 
     type: integer 
     primary: true 
     autoincrement: true 
    name: string(20) 
    relations: 
    Roles: 
     foreignAlias: Resources 
     class: Role 
     refClass: RoleResource 

Menu: 
    columns: 
    id: 
     type: integer 
     primary: true 
     autoincrement: true 
    label: string(20) 

Artical: 
    columns: 
    id: 
     type: integer 
     primary: true 
     autoincrement: true 
    title: string 
    content: longtext 
    css: longtext 
    js: longtext 

Je ne sais pas comment résoudre ce problème .
Quelqu'un peut-il m'aider s'il vous plaît?

+0

Il semble essayer d'ajouter un index sur une colonne role_id dans la table resources, mais la table ne contient pas cette colonne. Êtes-vous absolument sûr que c'est le fichier de schéma que votre commande de construction exécute? – Tom

+0

Je suis sûr, mais il semble que la doctrine met en cache le fichier. –

+0

Je l'ai eu par le passé. Essayez de voir si vous pouvez trouver un dossier temporaire quelque part et supprimer tous les fragments de schéma à l'intérieur. Je cours XAMPP sur Win7 à la maison et dans mon cas le dossier de temp était dans les dossiers de XAMPP. Vous devrez peut-être répéter cela chaque fois que vous construisez. Semble affecter les versions les plus récentes de Doctrine 1.2 pour une raison quelconque. – Tom

Répondre

0

J'ai déclassé Doctrine.

Et il y a des espaces pour beaucoup dans le fichier YAML ajoutez la ligne:

relations: 

du composant "RoleResource:"

Merci pour toute l'aide Tom,

Ivo Trompert

+0

Pas de problème ... espérons que tout cela fonctionne. – Tom