console = new ConsoleOutput(); // // // Generate pgloader config // $mysqlConnection = "from mysql://" . env('DB_USERNAME') . ":" . env('DB_PASSWORD') . "@" . env('DB_HOST') . "/" . env('DB_DATABASE'); // $postgresConnection = "into postgresql://" . env('POSTGRESQL_DB_USERNAME', 'homestead') . ":" . env('POSTGRESQL_DB_PASSWORD', 'secret') . "@" . env('POSTGRESQL_DB_HOST', 'localhost') . "/" . env('POSTGRESQL_DB_DATABASE', 'homestead'); // // $header = "LOAD DATABASE"; // $body = <<<'EOD' //with truncate // //CAST type datetime to timestamp using zero-dates-to-null, // type date to timestamp using zero-dates-to-null // //EXCLUDING TABLE NAMES MATCHING 'migrations'; //EOD; // // $output = implode("\n", array($header, $mysqlConnection, $postgresConnection, $body)); // $configPath = base_path() . "/pfmimport.load"; // file_put_contents($configPath, $output); // // // Run pgloader // $this->execRunWithCallback("pgloader " . $configPath); // // // Run after-import.sql // DB::unprepared(file_get_contents(base_path() . "/database/after-import.sql")); // // // Remove pgloader config // unlink($configPath); } private function execRunWithCallback($command) { $array = []; exec($command, $array); if (!empty($array)) { foreach ($array as $line) { $this->execCallback($line); } } } private function execCallback($line) { $this->console->writeln("[PGLOADER] " . $line); } /** * Reverse the migrations. * * @return void */ public function down() { // } }