0

我是 Rails 的初学者,在我的 Windows 7 机器上尝试了一些示例。

我收到以下错误:SQLite3::SQLException: table "entries" already exists

“条目”是已经在另一个 Rails 应用程序中创建的表,我正在尝试一个类似的示例,它试图再次创建“条目”。

Rails 是否在 sqlite 中为每个应用程序创建一个单独的数据库?(我也是 Sqlite 的新手)。

4

2 回答 2

0

默认情况下,使用 sqlite 时,Rails 使用名为development.sqlite3,的数据库test.sqlite3production.sqlite3它们是dbRails 项目目录中的文件。

因此,如果您的新应用程序与旧应用程序位于同一文件夹中,那么您最终将使用相同的数据库;或者如果您的config/database.yml文件指向数据库的某个公共位置。

于 2013-03-05T09:55:11.327 回答
0

对于每个应用程序,应用程序database.yml的 config 文件夹中都有一个文件。您可以定义应用程序独有的数据库名称以及数据库设置。可能您database.yml的两个项目都具有相同的文件。因此,您当前的应用程序也在尝试创建已经存在的表(由database.yml您以前的应用程序的文件创建)。

解决方案是更改database.yml特定于您的应用程序。

之后,您可以运行:

rake db:create

rake db:migrate

按照上面的顺序,一切都会好的。

您也可以rake db:drop在不修改任何文件的情况下只执行上述两个命令,database.yml但这将删除您以前的数据库并为此应用程序创建新的数据库。但这不推荐。

于 2013-03-05T09:56:41.197 回答