I''m taking a crack at Rails and have run into a snag fairly early on. I read a tutorial that showed me how to use migrations and everything was going fine until I actually tried to use what I''d written. First off, I''m using Windows XP, MySQL 5.0.19, rails 2.2, ruby 1.8.5. I used this little script to verify the connection to the database was working: http://blog.caboo.se/articles/2005/8/4/test-your-database-connection-in-rails The migration file is pretty simple. So simple it''s probably not the problem. class BankDb < ActiveRecord::Migration def self.up create_table "accounts" do |t| t.column "id", :integer t.column "name", :string end end def self.down drop_table "accounts" end end g:\sites\bank\db\migrate>rake db:migrate VERSION=1 (in g:/sites/bank) == BankDb: migrating =========================================================-- create_table("accounts") rake aborted! Mysql::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''( 11), `name` varchar(255) DEFAULT NULL) ENGINE=InnoDB'' at line 1: CREATE TABLE accounts (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY(11), `nam e` varchar(255) DEFAULT NULL) ENGINE=InnoDB I logged into MySQL and tried the SQL statement generated but changed "PRIMARY KEY(11)" to simply "PRIMARY KEY" and it worked. I assume there''s a version mismatch with the syntax Rails expects MySQL to understand and what my version of MySQL really does understand. I haven''t had much luck with web searches for things like ``rails migrations primary key`` or ``migrations mysql syntax issues`` or, well, anything else I thought up. I assume I just need to update "migrations" but googling ``rails upgrade migrations`` and the like doesn''t do much good either. Obviously it''s something obvious that all rails guys know and don''t have to look up. ;) What am I missing? =( 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Gabriel wrote:> I''m taking a crack at Rails and have run into a snag fairly early on. > I read a tutorial that showed me how to use migrations and everything > was going fine until I actually tried to use what I''d written. > > First off, I''m using Windows XP, MySQL 5.0.19, rails 2.2, ruby 1.8.5. > > I used this little script to verify the connection to the database was > working: > > http://blog.caboo.se/articles/2005/8/4/test-your-database-connection-in-rails > > The migration file is pretty simple. So simple it''s probably not the > problem. > > class BankDb < ActiveRecord::Migration > def self.up > create_table "accounts" do |t| > t.column "id", :integer > t.column "name", :string > end > end > def self.down > drop_table "accounts" > end > end > > g:\sites\bank\db\migrate>rake db:migrate VERSION=1 > (in g:/sites/bank) > == BankDb: migrating > =========================================================> -- create_table("accounts") > rake aborted! > Mysql::Error: You have an error in your SQL syntax; check the manual > that corresponds to your MySQL server version for the right syntax to > use near ''( > 11), `name` varchar(255) DEFAULT NULL) ENGINE=InnoDB'' at line 1: > CREATE TABLE accounts (`id` int(11) DEFAULT NULL auto_increment > PRIMARY KEY(11), `nam > e` varchar(255) DEFAULT NULL) ENGINE=InnoDB > > > I logged into MySQL and tried the SQL statement generated but changed > "PRIMARY KEY(11)" to simply "PRIMARY KEY" and it worked. I assume > there''s a version mismatch with the syntax Rails expects MySQL to > understand and what my version of MySQL really does understand. > > I haven''t had much luck with web searches for things like ``rails > migrations primary key`` or ``migrations mysql syntax issues`` or, > well, anything else I thought up. I assume I just need to update > "migrations" but googling ``rails upgrade migrations`` and the like > doesn''t do much good either. Obviously it''s something obvious that all > rails guys know and don''t have to look up. ;) > > What am I missing? =(Try taking out the t.column "id" line. Rails will create it by default unless you specifically tell it not to so having it there is redundant and may be causing a problem. Also the convention is to use symbols for the column names as in: t.column :name, :string -- Michael Wang --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> Try taking out the t.column "id" line.=O It''s the little things in life, no? Thank you Michael! --~--~---------~--~----~------------~-------~--~----~ 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Rails automatically adds an ''id'' field for you, so you don''t have to declare it yourself. Try the following instead: class BankDb < ActiveRecord::Migration def self.up create_table "accounts" do |t| t.column "name", :string end end def self.down drop_table "accounts" end end On Mar 15, 11:33 pm, "Gabriel" <inanutshel...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I''m taking a crack at Rails and have run into a snag fairly early on. > I read a tutorial that showed me how to use migrations and everything > was going fine until I actually tried to use what I''d written. > > First off, I''m using Windows XP, MySQL 5.0.19, rails 2.2, ruby 1.8.5. > > I used this little script to verify the connection to the database was > working: > > http://blog.caboo.se/articles/2005/8/4/test-your-database-connection-... > > The migration file is pretty simple. So simple it''s probably not the > problem. > > class BankDb < ActiveRecord::Migration > def self.up > create_table "accounts" do |t| > t.column "id", :integer > t.column "name", :string > end > end > def self.down > drop_table "accounts" > end > end > > g:\sites\bank\db\migrate>rake db:migrate VERSION=1 > (in g:/sites/bank) > == BankDb: migrating > =========================================================> -- create_table("accounts") > rake aborted! > Mysql::Error: You have an error in your SQL syntax; check the manual > that corresponds to your MySQL server version for the right syntax to > use near ''( > 11), `name` varchar(255) DEFAULT NULL) ENGINE=InnoDB'' at line 1: > CREATE TABLE accounts (`id` int(11) DEFAULT NULL auto_increment > PRIMARY KEY(11), `nam > e` varchar(255) DEFAULT NULL) ENGINE=InnoDB > > I logged into MySQL and tried the SQL statement generated but changed > "PRIMARY KEY(11)" to simply "PRIMARY KEY" and it worked. I assume > there''s a version mismatch with the syntax Rails expects MySQL to > understand and what my version of MySQL really does understand. > > I haven''t had much luck with web searches for things like ``rails > migrations primary key`` or ``migrations mysql syntax issues`` or, > well, anything else I thought up. I assume I just need to update > "migrations" but googling ``rails upgrade migrations`` and the like > doesn''t do much good either. Obviously it''s something obvious that all > rails guys know and don''t have to look up. ;) > > What am I missing? =( > > 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Michael Wang wrote: ...> > -- > Michael WangThank you! I had the exact same problem! Now its fixed. -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---