cakephp3のbakeコマンドを使って、
schemaがpublicでないテーブルのModelを生成する方法です。
configファイルの設定
まずは、config/app.phpファイルに、
データベースの接続情報を設定する必要があります。
// e.g. 'Datasources' => [ // ... 'mydb' => [ 'className' => 'Cake\Database\Connection', 'driver' => 'Cake\Database\Driver\Mysql', 'persistent' => false, 'host' => 'localhost', 'username' => 'my_app', 'password' => 'sekret', 'database' => 'my_app', 'encoding' => 'utf8', 'timezone' => 'UTC', 'cacheMetadata' => true, 'schema' => 'my_schema', ], // ... ],
その際、schema情報も忘れずに設定しましょう。
設定されていない場合、デフォルトでpublicに設定されます。
bakeコマンド
いよいよbakeコマンドです。
configファイルに設定した、mydb接続(上の例の場合)を、
bakeコマンドのオプションに指定しましょう。
$ bin/cake bake model --connection mydb # bin/cake bake model -c mydb # でも良い
上記コマンドでmydbで設定したスキーマに存在するテーブルが、
一覧表示されるかと思います。
あとは、
$ bin/cake bake model --connection mydb <table名>
上記コマンドのように、煮るなり焼くなり好きにしてください XD
ちなみに、下記コマンドで
全テーブルのModelを作成できます。
$ bin/cake bake model all --connection mydb