2011-10-23 33 views
0

我不得不3.1.1應用程序手動創建我的rails sqlite3的一個數據庫,使用mysql2sqlite工具從MySQL數據庫轉換,然後運行:的SQLite 3數據庫沒有被正確讀取

sqlite3 development.sqlite3 < mysql2sqlite_dump.sql 

不管怎麼說,在development.sqlite3文件存在,並且服務器啓動正常,所有頁面加載正常(沒有關於丟失表或任何其他數據庫的錯誤),但是數據沒有被讀取......就好像它不在那裏一樣。即使是運行Event.all,例如,在控制檯給我:

Event Load (0.1ms) SELECT "events".* FROM "events" 
=> [] 

當實際上應該是幾個事件。查看sqlite3文件,我可以看到所有的信息都在那裏,但它只是沒有被讀取。如果有人要求,我會發布數據庫文件的一部分。

我的問題是:爲什麼數據庫沒有正確讀取,我該如何做到這一點?

謝謝。

+2

所以,如果你'sqlite3 development.sqlite3'那麼你可以從表中選擇,一切都在那裏,對吧?您確定Rails正在使用您的'sql.sqlite3'文件而不是其他SQLite數據庫文件嗎? –

+0

在sqlite3控制檯中運行'select * from events;'返回任何內容。我的'database.yml'文件指向'db/development.sqlite3'。 – bricker

+1

嗯。 'select * from sqlite_master'告訴你什麼照亮? –

回答

0

那麼,我似乎已經解決了這個問題。問題在於mysqldump(在mysql2sqlite腳本內部執行)正在刪除,然後創建表(這是默認值),並且與模式文件衝突。因此,我根據架構文件創建了數據庫,然後再次運行腳本,並添加了--no-create-info選項以用於mysqldump,以便它僅插入信息。

感謝大家的幫助!

相關問題