通过编程方式迁移Laravel新数据库
我正在使用Laravel双肩包作为我的应用程序管理部分。现在,在我通过后端创建公司后,我调用公司模型上的函数来执行以下步骤: 用我传递的名称创建一个新数据库 检查数据库是否已建立 从“我的公司”文件夹运行所有迁移 在我的拐杖里通过编程方式迁移Laravel新数据库,laravel,Laravel,我正在使用Laravel双肩包作为我的应用程序管理部分。现在,在我通过后端创建公司后,我调用公司模型上的函数来执行以下步骤: 用我传递的名称创建一个新数据库 检查数据库是否已建立 从“我的公司”文件夹运行所有迁移 在我的拐杖里 $company->createDatabase( $request->input('db_name') ); 在我的模型中 public function createDatabase($dbName) { //Cr
$company->createDatabase( $request->input('db_name') );
在我的模型中
public function createDatabase($dbName)
{
//Create a new DB with the company db_name attribute
$new_db = DB::statement("CREATE DATABASE {$dbName}" );
//Now migrate over all Company specific migrations
if($new_db)
{
\App::make( 'setDbConnection', $dbName );
return Artisan::call( 'migrate', [
'--database' => $dbName,
'--path' => 'app/database/migrations/company',
]);
}
}
现在,我将创建新的数据库,但运行迁移时会出现错误
如果我有\App::make'setDbConnection',$dbName;在这里我得到:Application::make必须是array类型,字符串是给定的
如果我去掉它并尝试迁移,我得到的结果是:数据库[MyNewDBName]未配置。对于任何进行类似操作的人来说,如果对于多数据库多文本SAAS应用程序,此功能有效。我之前的国际奥委会指挥权看起来像是从拉雷维尔4号手中夺走的。现在我可以使用Config命令设置连接并将其传递给artisan
public function createDatabase($dbName)
{
//Create a new DB with the company db_name attribute
$new_db = DB::statement("CREATE DATABASE {$dbName}" );
//Now migrate over all Company specific migrations
if($new_db)
{
\Config::set('database.connections.company.database', $dbName);
return Artisan::call( 'migrate', [
'--database' => 'company',
'--path' => 'database/migrations/company',
]);
}
}