2014-09-04 56 views
2

我意識到我無法運行教程(http://sequel.jeremyevans.net/)兩次。Ruby續集錯誤,表已存在

第一次,它按照我們的預期運行。但第二次,它提出了一個錯誤

SQLite3::SQLException: table `items` already exists (Sequel::DatabaseError) 

我明白錯誤,但我不知道如何解決它。

如何打開數據庫而不丟失其包含的數據,仍然可以運行教程?

+0

在這種情況下,您可以對數據進行備份並刪除表並重新創建表並導入備份數據 – 2014-09-04 04:41:23

+0

不!這太可怕了!如果你有10 GB的話會怎麼樣?你不能等待那兩次(當你備份它,當你導入它時) – Quarktum 2014-09-04 16:57:22

回答

13

問題是,它嘗試創建一個具有相同名稱的數據庫,但它已經存在,因此會引發錯誤。

解決方案:

  • create_table嘗試創建表時,如果已經存在引發錯誤。
  • create_table!刪除表(如果存在),然後創建表(您丟棄數據)。
  • create_table?僅當表不存在時才創建表。