0

私は、FuelPHP、ORM、および移行全般にまったく慣れていないので、初心者のように出くわしたら申し訳ありませんが、これに数時間苦労しているので、助けを求めようと思いました. 何か間違ったことをしている、または根本的な何かが欠けていると思います。

ユーザーモデルを作成しようとしています。簡単にするために、名前を表す文字列だけがあるとしましょう。

次の 2 つの Oil コマンドを使用すると、ユーザー モデルと、実行後に関連するテーブルが作成される関連する移行が作成されるという印象を受けました。

php oil generate model user name:string
oil refine migrate

これにより、モデルと移行が正常に作成されますが、2 番目のコマンドを実行しても、データベースにテーブルが作成されません。

一方、これらのコマンドを実行すると:

php oil generate migration create_user name:text
oil refine migrate

移行が作成され、テーブルがデータベースに構築されます。移行名に「create_」を追加すると、テーブルを作成できるようになりましたが、そのままにしておくと (つまりphp oil generate migration user name:text)、DB にテーブルが挿入されないことに気付きました。「create_」を使用した場合と使用しない場合で、生成された移行が大きく異なることに気付きました。

したがって、最終的に私の質問は、テーブルを作成するモデル、関連する移行をどのように作成するのですか? それとも、私は何かを完全に誤解していますか?

ありがとう!

4

1 に答える 1

2

「すでに最新の移行中」と表示された場合、移行追跡データは同期されていません。移行は、データベース(移行と呼ばれるテーブル)と、migrations.phpと呼ばれる環境フォルダー内の構成ファイルの両方で追跡されます。

それらの1つにすでにエントリがある場合、オイルはそれを再び実行しません。

したがって、バックドアからテーブルを削除してから、移行を再実行することはできません。最後の移行を元に戻すには、「migrate:down」を実行する必要があります。すべてを削除する場合は、移行テーブルと構成ファイルも削除します。

繰り返しになりますが、FuelPHPフォーラムのHarroVertonの功績によるものです。

于 2012-12-26T19:35:34.567 に答える