之前没遇到这个问题,我正在使用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:
由于
答案 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