私はRailsの初心者で、Windows7マシンでいくつかの例を試しています。
次のエラーが発生します:SQLite3::SQLException: table "entries" already exists
「entries」は別のRailsアプリケーションですでに作成されているテーブルであり、「entries」を再度作成しようとしている同様の例を試しています。
Railsはアプリケーションごとにsqliteに個別のデータベースを作成しますか?(私はSqliteも初めてです)。
私はRailsの初心者で、Windows7マシンでいくつかの例を試しています。
次のエラーが発生します:SQLite3::SQLException: table "entries" already exists
「entries」は別のRailsアプリケーションですでに作成されているテーブルであり、「entries」を再度作成しようとしている同様の例を試しています。
Railsはアプリケーションごとにsqliteに個別のデータベースを作成しますか?(私はSqliteも初めてです)。
デフォルトでは、sqlite を使用する場合、Rails は 、 という名前development.sqlite3
のデータベースを使用します。これらは、Rails プロジェクトのディレクトリにあるtest.sqlite3
ファイルproduction.sqlite3
です。db
したがって、新しいアプリケーションが古いアプリケーションと同じフォルダーにある場合は、同じデータベースを使用することになります。または、config/database.yml
ファイルが DB の共通の場所を指している場合。
アプリケーションごとdatabase.yml
に、アプリケーションの構成フォルダーにファイルがあります。データベース設定とともに、アプリケーションに固有のデータベース名を定義できます。おそらく、両方のプロジェクトに同じdatabase.yml
ファイルがあるだけです。したがって、現在のアプリケーションも、既に存在するテーブルを作成しようとしていdatabase.yml
ます(以前のアプリケーションのファイルによって作成されました)。
database.yml
解決策は、アプリケーションに固有のものを変更することです。
その後、実行できます:
rake db:create
rake db:migrate
上記の順序で、すべて問題ありません。
rake db:drop
ファイルを変更せずに上記の 2 つのコマンドのみを実行することもできdatabase.yml
ますが、これにより以前のデータベースが削除され、このアプリケーション用に新しいデータベースが作成されます。しかし、これはお勧めできません。