Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rake db:migrate giving 'unexpected \n' error

I used Rails scaffolding to make a model using the command from the terminal:

rails generate scaffold Venue venueid:string, venueName:string, venueAddress:string, venueCity:string, venueState:string, venueZip:integer, venuePhone:string, venueAge:int

Everything seems to install or generate okay, but when I run rake db:migrate I get the following error:

rake aborted!
/Users/Banderson/Documents/demo/db/migrate/20130202222224_create_venues.rb:5: syntax error, unexpected '\n'

      t.string, :venueName
^
org/jruby/RubyKernel.java:1062:in `require'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activesupport-3.2.10/lib/active_support/dependencies.rb:251:in `require'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activesupport-3.2.10/lib/active_support/dependencies.rb:236:in `load_dependency'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activesupport-3.2.10/lib/active_support/dependencies.rb:251:in `require'
/Users/Banderson/Documents/demo/db/migrate/20130202222224_create_venues.rb:537:in `load_migration'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:533:in `migration'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:528:in `migrate'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:720:in `migrate'
org/jruby/RubyProc.java:270:in `call'
org/jruby/RubyProc.java:220:in `call'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:775:in `ddl_transaction'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in `transaction'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/transactions.rb:208:in `transaction'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:775:in `ddl_transaction'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:719:in `migrate'
org/jruby/RubyArray.java:1620:in `each'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:700:in `migrate'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:570:in `up'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/migration.rb:551:in `migrate'
/Users/Banderson/.rvm/gems/jruby-1.6.8/gems/activerecord-3.2.10/lib/active_record/railties/databases.rake:179:in `(root)'
org/jruby/RubyProc.java:270:in `call'
org/jruby/RubyProc.java:220:in `call'
org/jruby/RubyArray.java:1620:in `each'
org/jruby/RubyArray.java:1620:in `each'
org/jruby/RubyKernel.java:1087:in `load'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

What am I doing wrong, or how can I fix it?

like image 434
BlackHatSamurai Avatar asked Feb 02 '13 22:02

BlackHatSamurai


1 Answers

Try

rails generate scaffold Venue venueid:string venueName:string venueAddress:string venueCity:string venueState:string venueZip:integer venuePhone:string venueAge:int

instead. You shouldn't have the commas in between each field.

With the commas, you're generating a migration with this in it:

create_table :venues do |t|
  t.string, :venueid
  t.string, :venueName
  t.string, :venueAddress
  t.string, :venueCity
  t.string, :venueState
  t.integer, :venueZip
  t.string, :venuePhone
  t.int :venueAge

  t.timestamps
end

As you can see, each t.string/integer/etc. method call has a comma before any arguments are given, which is invalid. If do this:

puts, "hi"

I get the error

syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'

which is similar to the error you had.

tldr: don't use commas in a generator

like image 127
SuperMaximo93 Avatar answered Nov 01 '22 01:11

SuperMaximo93