rails:rake db:create不创建新表

K M*_*lam 2 ruby-on-rails dbmigrate rails-migrations ruby-on-rails-3.2

我正在开发一个现有的rails项目,我必须在其中添加一个新选项卡.好吧,我已经编写了所有相应的模型,视图和控制器,然后更改了schema.rb文件以创建新表.

 create_table "ryan_indices", :force => true do |t|
    t.string   "name"
  end



create_table "benchmark_indices", :force => true do |t|
        t.string   "name"
      end
Run Code Online (Sandbox Code Playgroud)

这是我的部分schema.rb文件.第一张桌子就在那里.我只是想添加一个类似的新表,我为其创建了模型,视图和控制器,并在schema.rb文件中添加了那些create_table语句.但是,当我运行rake db:migrate它时不会创建新表.而且schema.rb file goes back to previous state我的意思是在我运行rake db:migrate命令之后我的更改消失了,它在命令行界面上没有显示任何内容.

我不知道我错过了什么.有人可以帮忙吗?

ulf*_*f_t 6

编辑schema.rb被认为是不好的做法:

...不是为了编辑而设计的,它们只代表数据库的当前状态.

要创建新模型(以及新的db表),请调用rails模型生成器

rails generate model Product name:string 
Run Code Online (Sandbox Code Playgroud)

或者:对于现有模型的新字段,请生成迁移 ...

rails generate migration AddNameToProducts
Run Code Online (Sandbox Code Playgroud)

...编辑它,然后用" rake db:migrate" 运行它

这些任务在官方RailsGuides> Migrations中有很好的描述