build-sql does not touch the schema at all. It generates sql from the
*models*. You need to generate new models from the schema(build-model)
first, and then regenerate sql.

On Jun 19, 2:33 pm, Ryan Walker <n...@witb.org> wrote:
> I hope this isn't a double post. I tried to post this yesterday and it did 
> not seem to go through to the list.
>
> I am new to symfony and doctrine. My co-workers designed a database 
> structure, and subsequently modified it directly. I am attempting to bring 
> our symfony/doctrine model back into sync with it.
>
> One of the tables in the schema is giving me trouble. Doctrine was adding an 
> `id` column to it when I performed a doctrine:build-schema. I realized that 
> the primary key of the table was not marked as such. So I fixed that, and now 
> doctrine:build-schema kicks out a reasonable schema.yml file.
>
> However, when I run doctrine:build-sql, it adds in an `id` column again and 
> changes the primary key from `statusid` to `id,statusid`.
>
> Here's what I have in schema.yml for this particular table:
>
> UsersStatus:
> connection: doctrine
> tableName: users_status
> columns:
>   statusid:
>     type: integer(11)
>     fixed: false
>     unsigned: false
>     primary: true
>     autoincrement: true
>   status:
>     type: string(20)
>     fixed: false
>     unsigned: false
>     primary: false
>     default: ''
>     notnull: true
>     autoincrement: false
> relations:
>   Users:
>     local: statusid
>     foreign: statusid
>     type: many
>
> What I expect doctrine to produce for SQL is:
> CREATE TABLE users_status (statusid BIGINT AUTO_INCREMENT, status VARCHAR(20) 
> DEFAULT '' NOT NULL, PRIMARY KEY(statusid)) ENGINE = INNODB;
>
> but instead, I get this:
> CREATE TABLE users_status (id BIGINT AUTO_INCREMENT, statusid BIGINT 
> AUTO_INCREMENT, status VARCHAR(20) DEFAULT '' NOT NULL, PRIMARY KEY(id, 
> statusid)) ENGINE = INNODB;
>
> Now here's where things get completely bizarre. Hopefully this will be the 
> key to someone.
>
> I can remove my schema.yml and schema.sql files and clear cache, then rerun 
> doctrine:build-sql and it will still generate the same SQL file! If I'm 
> reading the documentation correctly, it should fail when schema.yml is 
> missing. So, if it's not using config/doctrine/schema.yml, then where is it 
> getting the schema definition?
>
> Any help would be appreciated.
>
> Ryan

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

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

Reply via email to