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 -~----------~----~----~----~------~----~------~--~---