如何处理是否在续集中创建数据库?

时间:2014-03-03 00:48:34

标签: sqlite sequel

我正在使用Sequel和sqlite,如果sqlite数据库文件还不存在,我想从ruby代码创建数据库。我可以使用File类来查找文件,但我想知道Sequel中是否有东西能为我处理这个问题?

首先,我使用create_table创建每个程序运行的所有表?仅创建表的方法(如果表尚不存在)。这工作正常,直到我需要一个连接表。没有create_join_table?只有当它不存在时才会创建一个连接表。

有关在应用程序中处理数据库创建的任何建议吗?

1 个答案:

答案 0 :(得分:0)

Sequel中SQLite访问的默认行为是创建数据库(如果它不存在)。

你可以这样做:

join_table_opts = {...}
DB.create_join_table(join_table_opts) unless DB.table_exists?(DB.send(:join_table_name, join_table_opts))

但可能更容易使用create_table?并手动创建连接表。 create_join_table并没有真正为你节省太多代码(最多几行)。