Philip Hallstrom <[email protected]> writes: >>>>>> Hi. >>>>>> >>>>>> This must be the most obvious thing to do, but I just can't seem >>>>>> to >>>>>> find examples of how to do this. I would like to create a table >>>>>> with a >>>>>> table unique constraint on database level. >>>>>> >>>>>> In deed some migration code that would generate the following SQL >>>>>> >>>>>> CREATE TABLE properties ( >>>>>> namespace CHAR(50), >>>>>> name CHAR(50), >>>>>> value VARCHAR(100), >>>>>> CONSTRAINT my_constraint UNIQUE (namespace, name) >>>>>> ); >>>>>> >>>>> >>>>> create_table :properties..... >>>>> ..... >>>>> end >>>>> >>>>> add_index :properties, [:namespace, :name], :unique => true >>>> >>>> After trying this and opening my interactive SQL prompt (psql), I >>>> can >>>> see that this only creates an index on the table not a table >>>> constraint. I can still put duplicate rows in the table. >>> >>> Hrm. I can't... Rails 2.3.5, Postgresql 8.4.1 (on mac, but doubt >>> that matters) >> >> I am so sorry. I did't do exactly as you said, explanation: >> I used >> >> create_table :properties do |t| >> ..... >> t.index [:namespace, :name], :unique => true >> end >> >> That does NOT create an index!!! and therefore neither a constraint!!! >> >> I gues that is a bug in the PostgreSQL adapter. >> >> But when I do as you describe using add_index syntax instead it will >> create an index (AND constraint!) >> >> But the fact that 't.index [:namespace, :name], :unique => true' does >> not generate an index is a bug, right? >> >> Thanks for all help. I appreciate the time you've spent on this. > > That does indeed look like a bug. I just tried it and it doesn't > work. What's strange is the source code seems to say that "t.index" > simply calls "add_index" just like if I'd done it normally. > > I just tried it using MySQL as the backend and it does NOT work either.
Thanks for confirming I am not missing something. > You should submit a ticket to the Rails folks... I just did: https://rails.lighthouseapp.com/projects/8994/tickets/4101-activerecordconnectionadapterstableindex-does-not-generat-indexes Jarl -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" 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/rubyonrails-talk?hl=en.

