2016-04-06 12 views
0

laravelパッケージを作成しており、サービスプロバイダregisterメソッドで移行ファイルを実行したいとします。 他のlaravelパッケージでは、新しいデータベーステーブルにエントリを追加したいのですが、これはregisterメソッドでも処理する必要があります。Laravel - パッケージレジスタのデータベースを移行する

composer installを実行する前にデータベースが作成されています。

  1. register方法で移行を実行するにはどうすればよいですか?
  2. registerメソッド内の他のlaravelパッケージから新しいデータベーステーブルのエントリを作成するにはどうすればよいですか?

    $this->publishes([ 
         __DIR__.'/../database/migrations/' => database_path('migrations') 
        ], 'migrations'); 
    

    あなたのパッケージをインストールした後、ユーザーがコンフィグを公開するphp artisan vendor:publishコマンドを実行する必要があり、移行、コマンドなど

    次にあなたがcall commands your a codeに試すことができます:あなたはregisterこのコマンドで移行することができます

+0

「新しいtaのエントリを作成する別のパッケージから逃げる? ' –

+0

たとえば、最初のパッケージでは、設定の移行とモデルを作成します。他のパッケージでは、サービスプロバイダの登録メソッド内の設定に新しいエントリを追加して、パッケージのインストール後に設定が自動的に追加されるようにしたいと考えています。 – mc388

答えて

1

Artisan::call('vendor:publish'); 
+0

はいわかりましたが、移行を公開する手順をスキップします。パッケージをインストールした直後に移行を実行したい – mc388

+0

良いアイデアだとは思えませんが、登録方法からコマンドを試すことができます:https://laravel.com/docs/5.1/artisan#calling-commands-via-コード –

+0

私は職人の呼び出しは通常の設定で動作するはずだと思うが、私はドッカーで作業しているが、少し複雑である。私のチームメイトとの議論の後、データベースの移行から他のパッケージが追加できる設定ファイルに切り替わります。しかし助けてくれてありがとう – mc388

関連する問題