rails:rake db:create不创建新表

时间:2013-01-08 22:53:22

标签: ruby-on-rails ruby-on-rails-3.2 rails-migrations dbmigrate

我正在开发一个现有的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

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

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

1 个答案:

答案 0 :(得分:6)

要修改schema.rb is considered to be bad practice

  

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

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

rails generate model Product name:string 

或者:对于现有模型的新字段,请generate a migration ...

rails generate migration AddNameToProducts

...编辑它,然后使用“rake db:migrate

运行它

这些任务在官方RailsGuides > Migrations

中得到了很好的描述