数据库迁移错误 - 无法在rails上的ruby中迁移数据库

时间:2017-07-21 16:28:30

标签: ruby-on-rails ruby sqlite

我使用sqlite3作为开发db。我使用此代码迁移db

rake db:migrate

还尝试了这个rails db:migrate 但是我收到了这个错误

*SyntaxError: /Users/kangkanlahkar/Desktop/Codes/Ruby/practice/db/migrate/20170721152949_create_users.rb:4: syntax error, unexpected '\n', expecting &. or :: or '[' or '.'
/Users/kangkanlahkar/Desktop/Codes/Ruby/practice/db/migrate/20170721152949_create_users.rb:5: syntax error, unexpected '\n', expecting &. or :: or '[' or '.'*

任何想法如何解决它。我正在使用mac。

但是命令rails db:migrate:status可以正常工作

20170721152949_create_users.rb 文件的内容

class CreateUsers < ActiveRecord::Migration[5.1]
  def change
    create_table :users do |t|
      t.string, :name
      t.string, :email
      t.integer :phone
      t.timestamps
    end
  end
end

3 个答案:

答案 0 :(得分:1)

您需要在导致语法错误的t.string之后删除额外的逗号。请尝试以下方法:

class CreateUsers < ActiveRecord::Migration[5.1]
  def change
    create_table :users do |t|
      t.string :name
      t.string :email
      t.integer :phone
      t.timestamps
    end
  end
end

答案 1 :(得分:1)

  

语法错误,意外&#39; \ n&#39;,期待&amp ;.或::或&#39; [&#39;或者&#39;。&#39;

您必须在t.string

之后删除逗号(,)
class CreateUsers < ActiveRecord::Migration[5.1]
  def change
    create_table :users do |t|
      t.string :name
      t.string :email
      t.integer :phone
      t.timestamps
    end
  end
end

答案 2 :(得分:1)

删除t.string后的逗号:

class CreateUsers < ActiveRecord::Migration[5.1]
  def change
    create_table :users do |t|
      t.string :name
      t.string :email
      t.integer :phone
      t.timestamps
    end
  end
end