2013-07-26 49 views
1

我想在我的Ubuntu 12 mechine.After運行在軌道上的項目紅寶石運行命令bundle install我用下面的命令與導軌的現有數據庫工作項目

rake db:drop db:setup 

它顯示

-- create_table("art_clas", {:force=>true}) 
    -> 0.3222s 
-- add_index("art_clas, ["art_id", "clas, {:name=>"index_art_attes_on_art_attribute", :unique=>true}) 
    -> 0.4328s 
..................................... 
..................................... 

而我使用$ rake db:setup命令它顯示在現有數據庫的

franche_development already exists 
franche_test already exists 
-- create_table("art_clas", {:force=>true}) 
     -> 0.3222s 
    -- add_index("art_clas, ["art_id", "clas, {:name=>"index_art_attes_on_art_attribute", :unique=>true}) 
     -> 0.4328s 
    ..................................... 

後來當我運行該項目時,它不顯示數據庫表中的任何值(顯示空白)。 之後我鍵入以下顯示數據庫。但這種操作不顯示我在軌現有數據庫項目

mysql> show databases; 
+--------------------+ 
| Database   | 
+--------------------+ 
| information_schema | 
| test    | 
+--------------------+ 
2 rows in set (0.23 sec) 

執行rake db:drop返回任何

$ rake db:drop 
$ 

和運行顯示

Mysql2::Error: Table 'franche_development.arts' doesn't exist: SELECT `arts`.* FROM `arts` WHERE `arts`.`active` = 1 ..... 

項目我如何設置時和使用rails項目中的現有數據庫和表。

是不是由於任何代碼錯誤或數據庫設置?

回答

0

所以你要在MySQL中使用Ruby中創建的現有數據庫。您需要在config/database.yml中設置配置。

這裏有一個例子

發展:
適配器:mysql2
編碼:UTF8
數據庫:my_db_name
用戶名:root
密碼:MY_PASSWORD
主機:127.0.0.1
端口:3306

還需要安裝mysql寶石。並更新你的Gemfile關於MySQL寶石

通過SQLite中,而不是在MySQL的默認設置軌道數據庫和存儲在RAILS_ROOT/DB/development.sqlite3。這意味着如果你已經在rails中創建了它們,你將無法使用mysql來查看錶格,你需要使用sqlite3來與它們交互

+0

這些已經在database.yml文件中設置了 – chinchu

+0

也已經包含gem「mysql2」,「〜> 0.3.11」在gem文件中。 – chinchu