2013-03-05 84 views
0

我是Rails的初學者,在我的Windows 7機器上嘗試了一些示例。是否Rails爲每個應用程序創建一個單獨的數據庫

我收到以下錯誤:SQLite3::SQLException: table "entries" already exists

「項」是一個已經在其他的Rails應用程序中創建一個表,我想這是試圖打造「條目」再有類似的例子。

是否Rails在每個應用程序的sqlite中創建一個單獨的數據庫? (我也是Sqlite的新手)。

回答

0

對於每個應用程序,在您的應用程序的config文件夾中有一個database.yml文件。您可以將數據庫名稱與您的數據庫設置一起定義爲您的應用程序唯一的。對於您的兩個項目,可能只有相同的database.yml文件。所以你當前的應用程序也試圖創建已經存在的表(由你以前的應用程序的database.yml文件創建)。

解決方案是更改特定於您的應用程序的database.yml

之後,你可以運行:

rake db:create 

rake db:migrate 
上述順序

,這將是所有罰款。

你也可以只做rake db:drop,然後上面的兩條命令不修改你的任何database.yml文件,但是這會刪除你以前的數據庫併爲這個應用程序新建一個新的。但是這不被推薦。

0

默認情況下,使用SQLite時,Rails使用名爲development.sqlite3test.sqlite3數據庫,production.sqlite3這是在db目錄Rails項目的文件。

因此,如果新應用程序與舊應用程序位於同一個文件夾中,您最終會使用相同的數據庫;或者您的config/database.yml文件指向DB的某個公共位置。

相關問題