2012-03-28 10 views
0

私はレール上でルビーを学んでいます。 私はいくつかのデータをcsvファイルからsqliteデータベースにインポートすることから始めました。その後、そのデータを正常に私のレール環境に転送しました。 データベースを調べると、データベースに各エントリの5つのコピーが作成されていることがわかりました。私はデータベースをきれいにしたいと思っていましたし、それを行うための最良のオプションが何であるか疑問に思っていました。ここでrails sqliteデータベースに重複したエントリを取り除く

は、私は私がする必要があると思うものですが、あなたはそれらを考える場合にはより良い方法を提案してください:

  1. テーブルから重複の可能性を除去して入る生のSQLを呼び出すレール内のメソッドを書きますそれらを「複製」と呼ばれる別のテーブルにコピーします。
  2. 次に、「複製」テーブルのエントリを調べ、それらを保持するか削除するかを決定します。私は重複を削除するには、このメソッドを置くべきでチェックが行われます。最後の後
  3. 、また元のテーブルへ

を保持するエントリを転送しますか、? "モデル"または他のどこかで?

答えて

0

最も簡単な解決策は、データベースをクリアして再インポートして1つだけのコピーを作成することです。

また、SQLiteクライアントを使用してSQLで直接クリーンアップすることもできます。

このようなユーティリティメソッドの場合、そのルートを選択すると、通常はRakeタスクが作成されます。したがって、lib/tasksに入ります。

関連する問題