Ruby Sequel错误,表已经存在。

4

我发现我不能运行这个教程 (http://sequel.jeremyevans.net/) 两次。

第一次运行时,它按照我们的预期运行。但是第二次运行时,会引发一个错误。

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

我理解这个错误,但是我不知道如何修复它。

我该如何在不丢失数据的情况下打开数据库,并仍然能够运行教程?


在这种情况下,您可以备份数据,删除表并重新创建表,然后导入备份数据。 - Gagan Gami
不行!那太糟糕了!如果你有10 GB呢?你不能等两次(当你备份它时,和当你导入它时)。 - Quarktum
1个回答

21

问题是,它试图创建一个与现有数据库同名的数据库,因此会引发错误。

解决方案:

  • create_table尝试创建表格,如果已存在则引发错误。
  • create_table!删除现有表格,并创建新表格(您将失去数据)。
  • create_table?仅在表格不存在时创建表格。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接