exec("DROP TABLE IF EXISTS {$table} CASCADE"); } $migration = __DIR__ . '/../../db/migrations/001_init.sql'; $sql = file_get_contents($migration); if ($sql === false) { throw new \RuntimeException('Migration nicht lesbar.'); } $pdo->exec($sql); } public static function seedMinimal(PDO $pdo): array { $pdo->exec("INSERT INTO roles (key, name) VALUES ('player', 'Spieler')"); $pdo->exec("INSERT INTO roles (key, name) VALUES ('admin', 'Admin')"); $pdo->exec("INSERT INTO permissions (key, module, description) VALUES ('planet.public.view', 'planet', 'Planet ansehen')"); $pdo->exec("INSERT INTO permissions (key, module, description) VALUES ('planet.admin.generate', 'planet', 'Planeten generieren')"); $pdo->exec("INSERT INTO role_permissions (role_id, permission_id) SELECT r.id, p.id FROM roles r JOIN permissions p ON r.key = 'player' AND p.key = 'planet.public.view'"); $pdo->exec("INSERT INTO users (username, race_key) VALUES ('tester', 'human')"); $userId = (int)$pdo->query("SELECT id FROM users WHERE username = 'tester'")->fetchColumn(); $pdo->exec("INSERT INTO user_roles (user_id, role_id) SELECT {$userId}, r.id FROM roles r WHERE r.key = 'player'"); return ['user_id' => $userId]; } }