2024041000-add_syslog.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. declare(strict_types=1);
  3. use App\Interfaces\MigrationInterface;
  4. use App\Services\DB;
  5. return new class() implements MigrationInterface {
  6. public function up(): int
  7. {
  8. DB::getPdo()->exec("
  9. CREATE TABLE IF NOT EXISTS `syslog` (
  10. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '记录ID',
  11. `user_id` bigint(20) unsigned NOT NULL DEFAULT 0 COMMENT '触发用户',
  12. `ip` varchar(255) NOT NULL DEFAULT '' COMMENT '触发IP',
  13. `message` varchar(1024) NOT NULL DEFAULT '' COMMENT '日志内容',
  14. `level` tinyint(3) unsigned NOT NULL DEFAULT 100 COMMENT '日志等级',
  15. `context` longtext NOT NULL DEFAULT '{}' COMMENT '日志内容' CHECK (json_valid(`context`)),
  16. `channel` varchar(255) NOT NULL DEFAULT '' COMMENT '日志类别',
  17. `datetime` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '记录时间',
  18. PRIMARY KEY (`id`),
  19. KEY `user_id` (`user_id`),
  20. KEY `ip` (`ip`),
  21. KEY `message` (`message`),
  22. KEY `level` (`level`),
  23. KEY `channel` (`channel`),
  24. KEY `datetime` (`datetime`)
  25. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
  26. ");
  27. return 2024041000;
  28. }
  29. public function down(): int
  30. {
  31. DB::getPdo()->exec('
  32. DROP TABLE IF EXISTS `syslog`;
  33. ');
  34. return 2024040500;
  35. }
  36. };