0

私は自分のプロジェクトで多くの移行を行っているカスタムパッケージを使用しています。パッケージには多くの移行とシードが含まれています。laravel 5のサーバーで移行が実行されていませんか?

パッケージのサービスプロバイダでは、私はそうのような移行をロード:

$this->loadMigrationsFrom(__DIR__ . '/database/migrations/'); 

私はローカルでphp artisan migrate:refreshを実行すると、それは魔法のように動作し、移行が実行され、テーブルがDBにインストールされています。しかし、私のサーバで同じことをすると、マイグレーションするものは何もないと言います。これは同じ設定がホームステイのenvで動作し、私の生産環境ではないので混乱します。

これ以外の誰かが同様の問題に直面しているのですか、これを解決する方法はありますか?

+0

パッケージについてのLaravelの公式ドキュメントでは、移行について何も見つかりませんでした。移行を追加するには、手動でcreateコマンドを実行する必要があります。 –

+0

base_path()を使用すると、移行ファイルが見つからないか、パスが正しくない可能性が2つあります。また、ファイルが存在し、パスが適切である場合は、マイグレーションテーブル内の尊重されたエントリを削除し、マイグレーションを再度実行することができます。 – iSensical

答えて

0

Gitを使用している場合は、サーバー上のブランチが開発環境のブランチと同じであるかどうかを確認してください。

たとえば、サーバー上のmasterブランチ(デフォルト)上にあり、すべての開発をdevelopmentブランチで行ったとします。このため、移行はdevelopmentブランチにしか表示されません。

0

サーバー上のプレースメントが異なるか、別の場所からコマンドが実行されることはありますか? __DIR__は最高の状況ではあまり信頼性がありません。

これにラインを変更することで、あなたのコードを抽象化してみてください。あなたのLaravelのコード内の特定のファイルの場所を扱うとき

$this->loadMigrationsFrom(base_path() . '/database/migrations/'); 

base_path()app_path()は便利な機能です:)

EDIT:わーと別の可能性:あなたの移行はあなたのgitリポジトリに追加されていません。

+0

'realpath()'と 'base_path()'メソッドを含むpathとの組み合わせをたくさん試しましたが、うまくいきません。私は '__DIR__'パスで' dd() 'を試してみました。うまくいきました。 – Rohan

+0

Mmmhh ...あなたの移行テーブルは何を言っていますか?そしてその移行がそのフォルダにあることを確認しましたか? –

関連する問題