0

以前没有遇到过这个,我在rails中生成一个模型

rails g model Rating ratings:integer

此时没有生成迁移文件

然后我跑

 rake db:migrate

此时没有任何反应,即使 myapp_development 和 myapp_test 存在,模型也没有写入表

所以我检查了mysql,只用

mysql 

它直接登录,那里没有数据库,然后我再次登录,但这次使用这个命令

mysql -u root

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

数据库.yml

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

谢谢

4

2 回答 2

0

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

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

于 2013-02-18T20:42:59.627 回答
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. 您可以检查数据库中的 schema_migrations 表。

于 2013-02-18T20:39:44.803 回答