Hello, I''ve been building an app recently that has a model Books that is a database table and linked to several models/controllers. I recently learned that instead of Books it needs to be called publications (just an example)... I now want to update the database and all the mentions throughout the app. Is there a simple way to do that in Rails 3. Or do I have to migrate that particular table (via version?) and manually update all the references throughout the app? Thanks -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
nobosh wrote:> Hello, I''ve been building an app recently that has a model BooksThat should be Book. Rails model names are singular by convention. Table names are plural.> that > is a database tableNo! Models are not database tables; please don''t think of them that way. They *refer* to database tables, but the Ruby objects and the DB records and tables are not the same thing.> and linked to several models/controllers. I > recently learned that instead of Books it needs to be called > publications (just an example)... > > I now want to update the database and all the mentions throughout the > app. Is there a simple way to do that in Rails 3. Or do I have to > migrate that particular table (via version?)Version? Huh? Just write a migration that changes the name of the table. Note also that you can use set_table_name to specify a different table name than the one Rails would expect. Thus, you can change the class name or the table name without also changing the other. I wouldn''t advise breaking the Rails conventions unless you have a good reason to.> and manually update all > the references throughout the app?Yup. Your automated tests will break when they encounter the old class name and let you know where to change it.> > ThanksBest, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org -- Posted via http://www.ruby-forum.com/. -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Thanks Marnen. Regarding writing a migration that changes the name of the table, for some reason I feel like this situation is going to happen frequently and that could fill up the migrations. GIven that I''m only a few weeks into development and I have no real data, for some reason I feel it''d be cleaner to revert the book migration and add one that''s correct? On Sep 20, 10:32 am, Marnen Laibow-Koser <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> nobosh wrote: > > Hello, I''ve been building an app recently that has a model Books > > That should be Book. Rails model names are singular by convention. > Table names are plural. > > > that > > is a database table > > No! Models are not database tables; please don''t think of them that > way. They *refer* to database tables, but the Ruby objects and the DB > records and tables are not the same thing. > > > and linked to several models/controllers. I > > recently learned that instead of Books it needs to be called > > publications (just an example)... > > > I now want to update the database and all the mentions throughout the > > app. Is there a simple way to do that in Rails 3. Or do I have to > > migrate that particular table (via version?) > > Version? Huh? Just write a migration that changes the name of the > table. > > Note also that you can use set_table_name to specify a different table > name than the one Rails would expect. Thus, you can change the class > name or the table name without also changing the other. I wouldn''t > advise breaking the Rails conventions unless you have a good reason to. > > > and manually update all > > the references throughout the app? > > Yup. Your automated tests will break when they encounter the old class > name and let you know where to change it. > > > > > Thanks > > Best, > -- > Marnen Laibow-Koserhttp://www.marnen.org > mar...-sbuyVjPbboAdnm+yROfE0A@public.gmane.org > -- > Posted viahttp://www.ruby-forum.com/.-- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
migrations dont fill up , and if you want to get the result of all migrations on one go , do rake db:schema , it will load the schema. -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
nobosh wrote:> Thanks Marnen. Regarding writing a migration that changes the name of > the table, for some reason I feel like this situation is going to > happen frequently and that could fill up the migrations.You can''t fill up migrations.> GIven that > I''m only a few weeks into development and I have no real data, for > some reasonFor what reason?> I feelProgramming is not generally about feelings.> it''d be cleaner to revert the book migration and > add one that''s correct?You could in this case, yes. I normally don''t advise it. And of course it would be suicidally stupid to do so I. The general case where you do have data. Best, -- Marnen Laibow-Koser http://www.marnen.org marnen-sbuyVjPbboAdnm+yROfE0A@public.gmane.org Sent from my iPhone -- Posted via http://www.ruby-forum.com/. -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Mon, Sep 20, 2010 at 4:23 PM, Marnen Laibow-Koser <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Programming is not generally about feelings.I feel good when I use Ruby, I feel bad when I use PHP. :) -- Greg Donald destiney.com | gregdonald.com -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
You also have to search and replace all occurrences of Books. I hope you have some tests to back you up. -- Posted via http://www.ruby-forum.com/. -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
>> Programming is not generally about feelings. > > I feel good when I use Ruby, I feel bad when I use PHP.Stop sleeping with your computer! -- Posted via http://www.ruby-forum.com/. -- 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.