0

私はほんの数週間前にLaravelを使い始めました(移行は2つの間で似ていることがわかっているので、RoRをタグとして追加しました)が、まだ移行の操作にいくらか慣れることに苦労しています。私はいくつかのドキュメントとチュートリアル(LaravelとRailsのようなそれらを使用する他のフレームワークの両方)を読んでみましたが、それらは一般的にそれらの使用方法を説明するのに良い仕事をしていますが、それでもそれらを効果的に使用する方法を理解できません。私が持っているいくつかの質問:

  1. ビューにテーブルを作成し、後でいくつかの列を追加し、おそらく他のいくつかの列を削除することにした場合、これを行うにはどうすればよいですか?既存の移行を編集することは正しい方法ではないことを理解しています。新しい列を追加し、古い列を削除する新しい移行を追加しますか?もしそうなら、それらの命名規則はありますか?たとえば、usersというテーブルを作成するとき、すべてのチュートリアルは通常、移行にcreate_usersという名前を付けますが、この移行をupdate_usersと呼びますか?ユーザーに別の更新を行いたい場合は、Update_Usersという2つのクラスがあります。また、このアプローチで私が抱えている問題は、データベース構造の概要がよくわからないように感じていることです。テーブルの列が数十の移行ファイルに散在している可能性があります。

  2. テーブルにテストデータを入力したい場合、Laravel 4のシードのように、別々の移行でそれを行う方が良いですか?

  3. 各移行でテーブルを1つだけ持つ必要がありますか?ご存知のように、create_usersの移行では、3つのテーブルを作成します。users、roles、role_user、それらを別々の移行に配置する方が良いですか?

4

1 に答える 1

1
  1. 既存の移行を編集することは、進むべき道ではありません。そうしないと、本番システムにデプロイするときに変更が使用されません(移行番号は、再度実行されないようにデータベース自体に格納されます)。別の移行を追加して変更を行います。更新/変更の移行に関する実際の命名規則はありません。だからあなたが望むようにそれに名前を付けてください。ただし、移行を行った理由を示す固有名が役立つ場合があります(AddCommentsToUsersなど)。

  2. Railsにはシードメカニズムがあります(スクリーンキャストを参照)。これを使用する必要があります。データ移行には欠点があります。

  3. 移行ごとに1つのテーブルを使用します。最初のテーブル作成が実行されても2番目が実行されない場合は、後で移行を再実行しようとしたときに問題が発生します(問題を修正した後)。

于 2013-01-15T21:20:56.567 に答える