在rails中创建模型不会在mysql中创建相应的表

时间:2013-02-18 20:10:08

标签: mysql ruby-on-rails ruby-on-rails-3 model

之前没遇到这个问题,我正在使用rails生成模型

rails g model Rating ratings:integer

此时没有生成迁移文件

然后我跑

 rake db:migrate

此时没有任何事情发生,即使myapp_development和myapp_test存在,模型也没有写入表格

所以我检查了mysql,只用

登录
mysql 

并且它直接登录,两个数据库都不存在,然后我再次登录但这次使用此命令

mysql -u root

在这里我的数据库存在。有谁知道这里发生了什么,我如何让我的模型创建一个相应的表?

的database.yml

development:
adapter: mysql2
encoding: utf8
reconnect: false
database: recipes_development
pool: 5
username: root
password:

由于

2 个答案:

答案 0 :(得分:0)

你的发电机看起来不错 1。 它适合我(Rails 3.2):

$ rails g model Rating ratings:integer
      invoke  active_record
      create    db/migrate/20130218203713_create_ratings.rb
      create    app/models/rating.rb
      invoke    test_unit
      create      test/unit/rating_test.rb
      create      test/fixtures/ratings.yml
$ cat db/migrate/20130218203713_create_ratings.rb
class CreateRatings < ActiveRecord::Migration
  def change
    create_table :ratings do |t|
      t.integer :ratings

      t.timestamps
    end
  end
end

尝试rake db:migrate --trace

UPD 2.您可以在DB中检查schema_migrations表。

答案 1 :(得分:0)

检查迁移文件和db/schema.rb文件的时间戳。如果您最近一直在使用git的不同分支,那么您可能会遇到时间戳问题。

如果是这种情况,请尝试删除schema.rb文件,然后重新运行rake db:migrate