Modelinden Symfony üreten veritabanı

3 Cevap php

Ben basit bir veritabanı formu modelini üreten sıkıntılar yaşıyorum. Ben kullanıyorum:

  • Doctrine on Symfony 1.4.4
  • MySQL Workbench 5.2.16 with Doctrine Export 0.4.2dev

Yani benim ERL Modeli:

http://img708.imageshack.us/img708/1716/tmg.png

Genereted YAML dosyası:

---
detect_relations: true
options:
  collate: utf8_unicode_ci
  charset: utf8
  type: InnoDB

Course:
  columns:
    id:
      type: integer(4)
      primary: true
      notnull: true
      autoincrement: true
    name:
      type: string(255)
      notnull: true
    keywords:
      type: string(255)
      notnull: true
    summary:
      type: clob(65535)
      notnull: true

Lecture:
  columns:
    id:
      type: integer(4)
      primary: true
      notnull: true
      autoincrement: true
    course_id:
      type: integer(4)
      primary: true
      notnull: true
    name:
      type: string(255)
      notnull: true
    description:
      type: string(255)
      notnull: true
    url:
      type: string(255)
  relations:
    Course:
      class: Course
      local: course_id
      foreign: id
      foreignAlias: Lectures
      foreignType: many
      owningSide: true

User:
  columns:
    id:
      type: integer(4)
      primary: true
      unique: true
      notnull: true
      autoincrement: true
    firstName:
      type: string(255)
      notnull: true
    lastName:
      type: string(255)
      notnull: true
    email:
      type: string(255)
      unique: true
      notnull: true
    designation:
      type: string(1024)
    personalHeadline:
      type: string(1024)
    shortBio:
      type: clob(65535)

UserCourse:
  tableName: user_has_course
  columns:
    user_id:
      type: integer(4)
      primary: true
      notnull: true
    course_id:
      type: integer(4)
      primary: true
      notnull: true
  relations:
    User:
      class: User
      local: user_id
      foreign: id
      foreignAlias: UserCourses
      foreignType: many
      owningSide: true
    Course:
      class: Course
      local: course_id
      foreign: id
      foreignAlias: UserCourses
      foreignType: many
      owningSide: true

Ve ne olursa olsun ben ne deneyin bu hata sonra oluşur:

symfony doctrine:build --all --no-confirmation

SQLSTATE[42000]: Syntax error or access violation: 1072 Key column 'user_userid' doesn't exist in table. Failing Query: "ALTER TABLE user_has_course ADD CONSTRAINT user_has_course_user_userid_user_id FOREIGN KEY (user_userid) REFERENCES user(id)". Failing Query: ALTER TABLE user_has_course ADD CONSTRAINT user_has_cou
rse_user_userid_user_id FOREIGN KEY (user_userid) REFERENCES user(id)

Şu anda Symfony okuyan, ve bu hata ile şaşırıp. Lütfen yardım edin.

3 Cevap

Bu hata diyor gibi: sütun "user.user_id" yok. Ilişkilerinizde, siz "kullanıcı" tablosunda olmalıdır "User_id" adında bir sütun bahsediyorsan, ancak bunun yerine, kullanıcı tablo sütun "id" vardır.

Eğer MyISAM gibi şema en Motoru için InnoDB kullanıyor ve diğerleri yabancı anahtarları desteklemiyor emin olun.

Try ORM Designer. Görsel modelini oluşturmak için kullanabilirsiniz ve otomatik Öğretiler şema dosyaları oluşturabilirsiniz. Bu Doktrin için tam destek var, bu yüzden bile görsel modelinde davranışları ve diğer ORM özel ayarlarını yapabilirsiniz.

Bu hepimiz için bir araç, bu yüzden birkaç uygulamaları ve eklentileri ile mücadele etmek zorunda kalmazsınız.