safeLoad(); $schemaFile = dirname(__DIR__) . '/database/schema.sql'; if (!is_file($schemaFile)) { fwrite(STDERR, "Schema file not found.\n"); exit(1); } $sql = file_get_contents($schemaFile); if ($sql === false) { fwrite(STDERR, "Unable to read schema file.\n"); exit(1); } $dsn = sprintf( 'mysql:host=%s;port=%s;dbname=%s;charset=%s', $_ENV['DB_HOST'] ?? '127.0.0.1', $_ENV['DB_PORT'] ?? '3306', $_ENV['DB_DATABASE'] ?? '', $_ENV['DB_CHARSET'] ?? 'utf8mb4' ); $pdo = new PDO( $dsn, $_ENV['DB_USERNAME'] ?? '', $_ENV['DB_PASSWORD'] ?? '', [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ] ); $statements = preg_split('/;\s*[\r\n]+/', $sql); $count = 0; foreach ($statements as $statement) { $statement = trim($statement); if ($statement === '') { continue; } $pdo->exec($statement); $count++; } $totalTables = (int)$pdo->query('SELECT COUNT(*) AS c FROM information_schema.tables WHERE table_schema = DATABASE()')->fetchColumn(); echo "IMPORT_OK\n"; echo "STATEMENTS={$count}\n"; echo "TABLES={$totalTables}\n";