我是 Rails 的初学者,在我的 Windows 7 机器上尝试了一些示例。
我收到以下错误:SQLite3::SQLException: table "entries" already exists
“条目”是已经在另一个 Rails 应用程序中创建的表,我正在尝试一个类似的示例,它试图再次创建“条目”。
Rails 是否在 sqlite 中为每个应用程序创建一个单独的数据库?(我也是 Sqlite 的新手)。
我是 Rails 的初学者,在我的 Windows 7 机器上尝试了一些示例。
我收到以下错误:SQLite3::SQLException: table "entries" already exists
“条目”是已经在另一个 Rails 应用程序中创建的表,我正在尝试一个类似的示例,它试图再次创建“条目”。
Rails 是否在 sqlite 中为每个应用程序创建一个单独的数据库?(我也是 Sqlite 的新手)。
默认情况下,使用 sqlite 时,Rails 使用名为development.sqlite3
,的数据库test.sqlite3
,production.sqlite3
它们是db
Rails 项目目录中的文件。
因此,如果您的新应用程序与旧应用程序位于同一文件夹中,那么您最终将使用相同的数据库;或者如果您的config/database.yml
文件指向数据库的某个公共位置。
对于每个应用程序,应用程序database.yml
的 config 文件夹中都有一个文件。您可以定义应用程序独有的数据库名称以及数据库设置。可能您database.yml
的两个项目都具有相同的文件。因此,您当前的应用程序也在尝试创建已经存在的表(由database.yml
您以前的应用程序的文件创建)。
解决方案是更改database.yml
特定于您的应用程序。
之后,您可以运行:
rake db:create
rake db:migrate
按照上面的顺序,一切都会好的。
您也可以rake db:drop
在不修改任何文件的情况下只执行上述两个命令,database.yml
但这将删除您以前的数据库并为此应用程序创建新的数据库。但这不推荐。