init.sql 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. -- License Admin 数据库初始化脚本
  2. -- MySQL 版本
  3. -- 创建数据库(如果不存在)
  4. CREATE DATABASE IF NOT EXISTS `license_admin`
  5. DEFAULT CHARACTER SET utf8mb4
  6. DEFAULT COLLATE utf8mb4_unicode_ci;
  7. -- 使用数据库
  8. USE `license_admin`;
  9. -- 创建 licenses 表
  10. CREATE TABLE IF NOT EXISTS `licenses` (
  11. `id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  12. `license_key` varchar(255) NOT NULL COMMENT '激活码',
  13. `bound_devices` text COMMENT '已绑定设备列表(JSON数组)',
  14. `device_activations` text COMMENT '设备首次激活时间(JSON对象)',
  15. `device_heartbeats` text COMMENT '设备心跳时间(JSON对象,最后验证时间)',
  16. `max_devices` int NOT NULL DEFAULT '2' COMMENT '最大设备数',
  17. `created_at` datetime(3) DEFAULT NULL COMMENT '创建时间',
  18. `updated_at` datetime(3) DEFAULT NULL COMMENT '更新时间',
  19. PRIMARY KEY (`id`),
  20. UNIQUE KEY `idx_licenses_key` (`license_key`),
  21. KEY `idx_licenses_created_at` (`created_at`)
  22. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='许可证表';
  23. -- 插入测试数据(可选)
  24. INSERT INTO `licenses` (`license_key`, `bound_devices`, `device_activations`, `device_heartbeats`, `max_devices`, `created_at`, `updated_at`)
  25. VALUES
  26. ('TEST-KEY-123456', '[]', '{}', '{}', 2, NOW(), NOW())
  27. ON DUPLICATE KEY UPDATE `updated_at` = NOW();