0

私はRailsの初心者で、Windows7マシンでいくつかの例を試しています。

次のエラーが発生します:SQLite3::SQLException: table "entries" already exists

「entries」は別のRailsアプリケーションですでに作成されているテーブルであり、「entries」を再度作成しようとしている同様の例を試しています。

Railsはアプリケーションごとにsqliteに個別のデータベースを作成しますか?(私はSqliteも初めてです)。

4

2 に答える 2

0

デフォルトでは、sqlite を使用する場合、Rails は 、 という名前development.sqlite3のデータベースを使用します。これらは、Rails プロジェクトのディレクトリにあるtest.sqlite3ファイルproduction.sqlite3です。db

したがって、新しいアプリケーションが古いアプリケーションと同じフォルダーにある場合は、同じデータベースを使用することになります。または、config/database.ymlファイルが DB の共通の場所を指している場合。

于 2013-03-05T09:55:11.327 に答える
0

アプリケーションごとdatabase.ymlに、アプリケーションの構成フォルダーにファイルがあります。データベース設定とともに、アプリケーションに固有のデータベース名を定義できます。おそらく、両方のプロジェクトに同じdatabase.ymlファイルがあるだけです。したがって、現在のアプリケーションも、既に存在するテーブルを作成しようとしていdatabase.ymlます(以前のアプリケーションのファイルによって作成されました)。

database.yml解決策は、アプリケーションに固有のものを変更することです。

その後、実行できます:

rake db:create

rake db:migrate

上記の順序で、すべて問題ありません。

rake db:dropファイルを変更せずに上記の 2 つのコマンドのみを実行することもできdatabase.ymlますが、これにより以前のデータベースが削除され、このアプリケーション用に新しいデータベースが作成されます。しかし、これはお勧めできません。

于 2013-03-05T09:56:41.197 に答える