1

そのため、多くの移行があるプロジェクトで使用しているカスタム パッケージがあります。パッケージには多くのマイグレーションとシードが含まれています。

パッケージのサービス プロバイダーで、次のように移行を読み込みます。

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

ローカルで実行するphp artisan migrate:refreshと、魅力的に機能し、移行が実行され、テーブルが DB にインストールされます。しかし、サーバーで同じことを行うと、移行することは何も言われません。これは、同じ構成が本番環境ではなくホームステッド環境で機能するため、混乱を招きます。

他の誰かが同様の問題に直面したことがありますか、またはこれを解決する方法について何か考えがありますか?

4

3 に答える 3

1

サーバー上で配置が異なるか、コマンドが別の場所から実行されている可能性がありますか? __DIR__最高の状況ではあまり信頼できません。

行を次のように変更して、コードを抽象化してみてください。

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

base_path()app_path()Laravelコード内の特定のファイルの場所を扱うときに便利な機能です:)

編集: ああ、別の可能性: 移行が git リポジトリに追加されていません。私が認めるよりも頻繁に私に起こります;-)

于 2016-09-08T10:12:14.363 に答える
0

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

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

于 2016-09-08T08:46:40.230 に答える