. * * @package LibreNMS * @link http://librenms.org * @copyright 2020 Tony Murray * @author Tony Murray */ namespace App\Http\Controllers\Install; use App\Http\Controllers\Controller; use App\StreamedOutput; use Illuminate\Http\Request; use Symfony\Component\HttpFoundation\StreamedResponse; class DatabaseMigrationController extends Controller { public function __invoke(Request $request) { \LibreNMS\DB\Eloquent::setConnection( 'setup', session('dbhost', 'localhost'), session('dbuser', 'librenms'), session('dbpass', 'farts'), session('dbname', 'phpunit_tests_librenms_234324'), session('dbport', 3306) ); var_dump(session()->all()); exit; $response = new StreamedResponse(function () { try { $output = new StreamedOutput(fopen('php://stdout', 'w')); echo "Starting Update...\n"; $ret = \Artisan::call('migrate', ['--seed' => true, '--force' => true, '--database' => 'setup'], $output); if ($ret !== 0) { throw new \RuntimeException('Migration failed'); } echo "\n\nSuccess!"; } catch (\Exception $e) { echo $e->getMessage() . "\n\nError!"; } }); $response->headers->set('Content-Type', 'text/plain'); $response->headers->set('X-Accel-Buffering', 'no'); return $response; } }