2009-07-06 13 views
0

何らかの理由で、レールを使用しているときにデータベーススキーマを更新できないと言われました。テーブルを削除して、更新されたスキーマを持つテーブルを再作成することはできますが、更新するテーブルにコンテンツがすでに格納されている場合は、これは機能しません。rails update database schema

お勧めですか?

ありがとうございます!

答えて

10

あなたの言うことは間違っています。 Railsを使用しているときにDBスキーマを更新できます。

あなたのやり方は「マイグレーション」です。

共通のパターンは、初期スキーマを構築する一連の移行を記述することです。アプリケーションが開発されるにつれて、進化するデザインに合わせてテーブルとカラムを変更する他の移行を作成します。アプリが本稼動中の場合は、これらの新しい移行を本番スキーマに適用します。

もちろん、いくつかの変更は既存のデータを混乱させますが、これはRailsとは関係ありません。それはあなたが使用しているプログラミング言語/フレームワークに関係なく真です。

レガシーDBスキーマを持ち、移行を使用していない場合でも、DBサーバーと直接対話することによってスキーマを更新できます。ここでも、何がうまくいくのでしょうか、そのような状況ではRailsとは何の関係もありません。これは、スキーマとデータそのものの構造に完全に依存しています。

+0

ありがとう、Ethan。 :) – Jess

0

コンテンツ内にコンテンツ内のテーブルをドロップすると、コンテンツが破棄されます。ただし、dbスキーマの移行と並行してコンテンツの移行を含めることができるため、スキーマが更新された後に移行されます。

+1

すべてのことを愛してください。データをデータベースに入れるために移行を使用しないでください。レーキタスクを使用します。 –

関連する問題