2013-02-18 47 views
0

還沒有遇到過這個,我產生在軌創建模型並不在MySQL中建立相應的表

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

當你只需要輸入mysql的,這將使用當前用戶登錄。但是,如果你使用-u root,它將使用root用戶(就像在你的database.yml中一樣)。 – basgys 2013-02-18 21:09:36

+0

所以這與我的問題無關? – Richlewis 2013-02-18 21:13:42

+0

只要Rails可以連接到數據庫,我不認爲這與你的問題有關。 – basgys 2013-02-18 21:15:48

回答

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 

嘗試耙分貝:遷移--trace

UPD 2,您可以在數據庫查詢schema_migrations表。

+0

我沒有得到一個正在生成的遷移文件,我得到的是調用active_record並創建應用/模型/ rating.rb – Richlewis 2013-02-18 20:42:56

+0

我對下面的答案做了一些評論,這是否揭示了這個問題? – Richlewis 2013-02-18 21:02:57

0

檢查遷移文件和db/schema.rb文件的時間戳。如果你最近一直在研究不同的git分支,你可能會遇到時間戳的問題。

如果是這種情況,請嘗試刪除schema.rb文件,然後重新運行rake db:migrate

+0

即時只使用主分支,並沒有爲這個應用程序實際創建一個新的分支 – Richlewis 2013-02-18 20:43:48

+0

有趣的...你可以發佈生成的遷移文件的內容? – graysonwright 2013-02-18 20:45:10

+0

多數民衆贊成沒有生成遷移文件的東西 – Richlewis 2013-02-18 20:45:59