新しいユーザーを作成できるアプリケーションがあります。新しいユーザーを作成した後、作成されたユーザーごとに個別のデータベースを作成する必要があります。ユーザアプリケーション。だから新しいデータベースを作成した後、私は新しいデータベースでユーザーの移行を実行することができません。動的データベースを作成して既存の移行を実行するlaravel
DB::statement('create database ' .$dbName); // with this I'm creating new db and after this I've some command like this:
Artisan::call('migrate', ['--database' => $new_connection]);*
データベースを作成していますが、このデータベースに移行が作成されていません。これで私を助けてください。
コード例:
if (DB::statement('create database ' . $dbName) == true) {
$new_connection = 'new';
$nc = \Illuminate\Support\Facades\Config::set('database.connections.' . $new_connection, [
'driver' => 'mysql',
'host' => 'localhost',
'database' => $dbName,
'username' => 'root',
'password' => '',
]);
Artisan::call('migrate', ['--database' => $nc]);
} else {
return 'db already exists!';
}
なぜ関連するテーブルで 'user_id'を参照するのではなく、ユーザ固有のデータベースを作成したいのですか? –
私はこのような機能を望んでいます https://laravel.io/forum/09-13-2014-create-new-database-and-tables-on-the-fly 私はそれぞれ別々のデータベースで実装していますユーザー。 – Chiru
これを実現するには、複数のデータベースを用意する必要はありませんが、実際にはこれを実行するいくつかの問題が発生します。 IMOでは、テーブル間の関係を使用するほうがはるかに良いでしょう。私はこれをまったく意識しているわけではありませんが、データベース設計との「一対一」、「一対多」、「多対多」の関係について知っていますか? –