mirror of
https://github.com/NamelessMC/Nameless
synced 2026-08-18 06:29:04 -04:00
* Create StyleCI config file * Disable `phpdoc_separation` * Apply fixes from StyleCI (#3476) Co-authored-by: StyleCI Bot <bot@styleci.io> * style: styleci fixes --------- Co-authored-by: StyleCI Bot <bot@styleci.io> Co-authored-by: Sam <samerton@users.noreply.github.com>
80 lines
2 KiB
PHP
80 lines
2 KiB
PHP
<?php
|
|
|
|
if (PHP_SAPI !== 'cli') {
|
|
die('This script must be run from the command line.');
|
|
}
|
|
|
|
define('ROOT_PATH', __DIR__ . '/../../..');
|
|
require 'vendor/autoload.php';
|
|
|
|
$classes = [
|
|
'Seeder.php',
|
|
'UserSeeder.php',
|
|
'UserProfilePostSeeder.php',
|
|
'MinecraftServerSeeder.php',
|
|
'MinecraftPlaceholderSeeder.php',
|
|
'MinecraftPlaceholderDataSeeder.php',
|
|
'ProfileFieldsSeeder.php',
|
|
'ProfileFieldsDataSeeder.php',
|
|
'ForumCategorySeeder.php',
|
|
'ForumSubforumSeeder.php',
|
|
'ForumTopicSeeder.php',
|
|
'ForumPostSeeder.php',
|
|
];
|
|
|
|
foreach ($classes as $class) {
|
|
require $class;
|
|
}
|
|
|
|
/** @var Seeder[] $seeders */
|
|
$seeders = array_map(static function (string $class) {
|
|
$class = explode('.', $class)[0];
|
|
|
|
return new $class();
|
|
}, array_slice($classes, 1));
|
|
|
|
$faker = Faker\Factory::create();
|
|
|
|
define('USER_COUNT', 1000);
|
|
define('PROFILE_POST_COUNT', 500);
|
|
define('PROFILE_POST_REPLY_COUNT', 500);
|
|
define('PROFILE_POST_REACTION_COUNT', 500);
|
|
define('PROFILE_FIELDS_COUNT', 7);
|
|
define('FORUM_CATEGORY_COUNT', 5);
|
|
define('FORUM_SUBFORUM_COUNT', $faker->numberBetween(1, 3));
|
|
define('FORUM_TOPIC_COUNT', $faker->numberBetween(5, 10));
|
|
define('FORUM_POST_COUNT', $faker->numberBetween(3, 10));
|
|
|
|
$db = DB::getInstance();
|
|
|
|
$wipe = false;
|
|
if (isset($argv[1]) && $argv[1] === '--wipe') {
|
|
$wipe = true;
|
|
echo '🧨 Wipe mode enabled!' . PHP_EOL;
|
|
}
|
|
|
|
if (!$wipe && $db->get('users', ['id', '>', 0])->count() > 0) {
|
|
echo '🛑 Database is not empty and wipe mode is not enabled!' . PHP_EOL;
|
|
exit(1);
|
|
}
|
|
|
|
if ($wipe) {
|
|
$db->query('SET FOREIGN_KEY_CHECKS = 0');
|
|
foreach ($seeders as $seeder) {
|
|
foreach ($seeder->tables as $table) {
|
|
$db->query("TRUNCATE {$table}");
|
|
}
|
|
}
|
|
echo '🧨 Deleted existing data!' . PHP_EOL;
|
|
}
|
|
|
|
echo PHP_EOL;
|
|
|
|
$start = microtime(true);
|
|
foreach ($seeders as $seeder) {
|
|
$seeder->seed($db, $faker);
|
|
}
|
|
|
|
echo PHP_EOL;
|
|
|
|
echo '🪄 Seeding complete! (' . round(microtime(true) - $start, 2) . 's)' . PHP_EOL;
|