2016-12-08 11 views
1

これは簡単なことですが、わかりません。Yii2が古い移行ファイルを再適用しようとしています

私はYii2インストールを最新の開発版に更新しました。テストを完了した後、安定版にロールバックすることに決めました。 作者がロールバックに失敗したとき、/VENDORディレクトリとcomposer.lockディレクトリのすべてを削除し、composer updateを実行しました。

問題: それは私がm130524_201442_intという名前のユーザー表の一番最初のマイグレーションを適用する必要があること言うように今私は、php yii migrateを使用することはできません。すべてのヘルプは高く評価され

Yii Migration Tool (based on Yii v2.0.10) 

Total 17 migrations have been applied before: 
    (2016-12-06 22:15:37) m161206_214310_rts_detail_type_enum2int 
    (2016-12-06 22:15:36) m161206_210705_rts_types 
    (2016-12-03 01:32:34) m161203_012757_emaillayout 
    (2016-11-18 19:59:15) m161118_195401_rts_reimbursment 
    (2016-11-18 17:48:24) m161118_172654_program 
    (2016-11-18 04:51:38) m161118_043442_duedata_droptime 
    (2016-11-17 20:05:40) m161117_200352_default_wo_tasks 
    (2016-11-16 21:40:27) m161116_212528_defaultdates 
    (2016-11-16 18:15:19) m161116_180722_defaulttasks 
    (2016-11-14 22:40:05) m161114_221144_distribution 
    (2016-11-14 20:26:09) m161114_202027_responsibility 
    (2016-11-14 19:36:02) m161114_192729_distribution 
    (2016-11-09 20:33:19) m161109_191955_locks2 
    (2016-11-09 17:13:40) m161109_170126_rts_timing_impl 
    (2016-11-09 17:13:39) m161011_171958_resp_list 
    (2016-10-07 05:29:35) m161007_051543_locks 
    (2016-08-04 15:57:58) m130524_201442_int 

:私はphp yii migrate/history allを実行すると はしかし、それは前にそれが完了したことを示しています。

更新: 別のテストサーバーにコードをプッシュすることにしました。 composer.jsoncomposer.lockが、このアップデートで引っ張ったcomposer updateので、私は走った後No new migrations found. Your system is up-to-date.

:Gitリポジトリから新しいコードを引っ張っすると、私はで終了しましたphp yii migrateを実行しようとしました。 Composerはコンポーネントの束をインストールして実行を終了しましたが、Yii2のバージョンは変更しませんでした。私はphp yii migrateを実行し、同じメッセージで終了しました:No new migrations found. Your system is up-to-date.

これは私の開発サーバーに何か問題があると思います。

何ができるかに関するアイデアはありますか?私はdevサーバーを再構築することができますが、このパズルは私を悩ませています。

皆さんのご意見をお待ちしております。

+0

MigrateController'の 'migrationNamespaces'および/または' migrationPath'プロパティを変更したことがありますか? – Bizley

+0

お返事ありがとうございます。 いいえ、私は 'MigrateController'に' migrationNamespaces'や/または 'migrationPath'を使って変更していません。 –

+0

これは本当に面白いですが、実際のコードでデバッグする必要があります。このバグのある環境で、 'BaseMigrateController'の' getNewMigrations() 'メソッドで何が起きているのかチェックする必要があります。 – Bizley

答えて

1

マイグレーションファイルを変更してもマイグレーションシステムがそれを検出しないため、Yii2のマイグレーションがどのように機能するかは、あまり快適ではありません。削除する

新しい移行は見つかりませんでした。あなたのシステムは最新のものです

メッセージと新しいマイグレーションファイルを再適用するには、データベースに行き、自動生成テーブルを検索する必要があります。 base_migration(またはちょうどmigration)と呼ばれています。

あなたはそれが適用されるの移行に関する情報が含まれていることがわかります - バージョン(ファイル名)と時間を適用します。そのテーブルからすべての行を削除します。

すべての行を削除すると、移行システムは以前に適用された変更を検出せず、migrationフォルダにあるすべてのファイルを取得します。

関連する問題