2011-01-12 10 views
0

これは私の最初の投稿ですので、私と一緒にお待ちください... :)Rails。既存のMS SQLデータベースのデータを使って作業する:(

私は現時点でレールを学習しており、ハンドソンの練習。

状況は次のとおりです。 既存のMS SQL Server 2000 DBには多数の顧客がいます。通常のもの。 誰がそれを設計したのか分かりませんが、すべての詳細がある巨大なテーブル "Customer"があります。

すぐに私たちは顧客を新しい会社に移し、動きを追跡する必要があります。 したがって、アプリケーションは、特定の顧客のための移動の詳細のスナップショットを持っている必要があります:彼は電話で呼ばれた、話をした、または他の手段で連絡を受けた。会話のメモ彼が動くことに同意したかどうか。その他...

元の顧客データはMS SQLからプールし、新しいトラッキングデータはすべて適切な新しいレールDBに入れる必要があります。 私はいくつかのことを考えていました: 1.古いDBから得た顧客レコードをプールし、新しいもので残りの作業をします。 これは、私の研究がレールが2つのDBで同時に動作することができないことを示しています。 2.古いMS SQLに接続し、必要なすべてのテーブルを作成してすべての作業を行います。 これは多くの問題があるようです。 "odbc"アダプタでエラーが表示されます。 "sqlserver"アダプタはmssql 2000で動作しません さらに、私は既存のMS DBで多くの問題を予測しています。 3.私が思うこの方法は最も合理的です。 顧客テーブルを古いMS SQL DBからCVSにダンプし、レールアプリ用に作成した新しいsqlite dbにインポートします。

この問題を解決する他の方法について考えてください。

可能であれば、私はまだ多くの問題を抱えています。 たとえば、テーブルに追加のフィールドが作成され、データのインポートが機能しない場合があります。または私は間違っていますか? 3番目のメソッドのサウンドはあなたのために実行可能ですか?落とし穴がありますか?提案?

ありがとうございました。

答えて

0

残念ながら、ルビーはウィンドウでうまく動作しません。また、MSSQLはおそらくレールDBにとって最悪の選択です。 Linux上でMySQLやPGにデプロイできるとすれば、古いdbからデータをエクスポートして新鮮なものにするため、レールが好きなようにデータをインポートするスクリプトを作成します。最初のステップは、レールの規則に移行することです。そのため、Customerモデルでは、idという名前の自動増分主キーフィールドを持つ顧客テーブルが整数になります。すべてのフィールドは、 "ワイドケース"(すべて小文字、アンダースコアとセパレートワード)を使用し、datetimeであり、created_at/updated_atと呼ばれるすべてのテーブルのフィールドを監査します。確かに痛み(特にあなたがレールを初めて習得した場合)ですが、コンベンションに挑戦しようとすると、邪悪な時間があり、プラットフォームに少なくとも適度に快適ではありません。 IMO sqliteは、多くのデータを格納しないで、1人だけで使用されるアプリ以外のものにとっては悪い選択です。

関連する問題