通过编程方式迁移Laravel新数据库

通过编程方式迁移Laravel新数据库,laravel,Laravel,我正在使用Laravel双肩包作为我的应用程序管理部分。现在,在我通过后端创建公司后,我调用公司模型上的函数来执行以下步骤: 用我传递的名称创建一个新数据库 检查数据库是否已建立 从“我的公司”文件夹运行所有迁移 在我的拐杖里 $company->createDatabase( $request->input('db_name') ); 在我的模型中 public function createDatabase($dbName) { //Cr

我正在使用Laravel双肩包作为我的应用程序管理部分。现在,在我通过后端创建公司后,我调用公司模型上的函数来执行以下步骤:

用我传递的名称创建一个新数据库

检查数据库是否已建立

从“我的公司”文件夹运行所有迁移

在我的拐杖里

$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',
                ]);
            }

        }