2014-09-04 2 views
2

Я понял, что не могу запустить учебник (http://sequel.jeremyevans.net/) дважды.Ошибка Ruby Sequel, таблица уже существует

В первый раз, он работает, как мы и ожидаем. Но во второй раз возникает ошибка

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

Я понимаю ошибку, но я не знаю, как ее исправить.

Как я могу открыть БД, не потеряв содержащиеся в нем данные и все еще имея возможность запускать учебник?

+0

В этом случае вы можете сделать резервную копию данных и отбросить таблицу и создать снова Таблицу и импортировать данные резервного копирования –

+0

НЕТ! Это ужасно! Что делать, если у вас 10 ГБ? Вы не можете дождаться этого дважды (при резервном копировании и при импорте) – Quarktum

ответ

13

Проблема заключается в том, что она пытается создать БД с тем же именем, но оно уже существует, поэтому оно вызывает ошибку.

Решение:

  • create_table Попытка создать таблицу, вызвать ошибку, если уже существует.
  • create_table! Оставьте таблицу, если она существует, а затем создайте таблицу (ВЫ ПОТЕРЯЕТЕ ДАННЫЕ).
  • create_table? Создайте таблицу только в том случае, если она не существует.