User.id and Rating.user_id must be the same type and length in order for a
foreign key to be defined between the two.

- Jon

On Thu, Oct 30, 2008 at 5:41 PM, Tobias Daur <[EMAIL PROTECTED]> wrote:

>
> Hi together,
>
> I'm not shure how to solve problems, i get, while inserting the
> generated sql.
> I'm using sf1.1 with the sfDoctrinePlugin.
>
> Snippet of my schema.yml with a 1:n relation:
> -----------------
> User:
>  actAs:
>    Timestampable:
>  columns:
>    first_name: string(255)
>    last_name: string(255)
>    nick: string(255)
>    password: string(255)
>    street: string(255)
>    postcode: string(5)
>    city: string(255)
> Rating:
>  columns:
>    created_at: timestamp
>    user_id: integer(4)
>  relations:
>    Users:
>      class: User
>      foreignAlias: Ratings
> -----------------
>
> If i do now a
> symfony cc
> symfony doctrine:build-model
> symfony doctrine:build-sql backend
> symfony doctrine:insert-sql backend
>
> i get an error:
> -----------------
>  SQLSTATE[42000]: Syntax error or access violation: 1072 Key column
> 'user_id' doesn't exist in table. Failing Query: CREATE TABLE rating (id
> BIGINT AUTO_INCREMENT, created_at DATETIME, INDEX user_id_idx (user_id),
> PRIMARY KEY(id)) ENGINE = INNODB
> -----------------
>
> There is no "user_id"-field in the table "rating" (wich i thought
> doctrine would add by itself), and it is impossible to produce a Index
> on a not existing field.
>
> So, i add the field to the schema:
>
> -----------------
> User:
>  actAs:
>    Timestampable:
>  columns:
>    first_name: string(255)
>    last_name: string(255)
>    nick: string(255)
>    password: string(255)
>    street: string(255)
>    postcode: string(5)
>    city: string(255)
> Rating:
>  columns:
>    created_at: timestamp
>    user_id: integer(4)
>  relations:
>    Users:
>      class: User
>      foreignAlias: Ratings
> -----------------
>
> Now i - get an error:
> -----------------
> SQLSTATE[HY000]: General error: 1005 Can't create table
> './fragjupp/#sql-bb2_e.frm' (errno: 150). Failing Query: ALTER TABLE
> rating ADD FOREIGN KEY (user_id) REFERENCES user(id)
> -----------------
>
> Yes, that's right, the field "user_id" in the sql-query was already
> added:
> -----------------
> CREATE TABLE rating (id BIGINT AUTO_INCREMENT, created_at DATETIME,
> user_id INT, INDEX user_id_idx (user_id), PRIMARY KEY(id)) ENGINE =
> INNODB;
> -----------------
> So it can't be added as a foreign key.
>
> Now, i'm trapped. In both cases i get an error.
>
> How do I have to write my schema.yml, that this works without errors?
>
> thanks for your ideas
>
> Tobias
>
>
> >
>


-- 
Jonathan H. Wage
Open Source Software Developer & Evangelist
http://www.jwage.com
http://www.doctrine-project.org
http://www.symfony-project.org

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to