# FastAdmin 数据库升级指南
## 从 v1.2.2 升级到 v1.3.2
—
## 📋 升级概述
### 版本信息
– **源版本**: FastAdmin 1.2.2 (website.sql)
– **目标版本**: FastAdmin 1.3.2 (fastadmin.sql)
– **升级日期**: 2025-12-03
### 数据库大小
– **website.sql**: 54个表 (包含18个基础表 + 36个CMS扩展表)
– **fastadmin.sql**: 18个表 (仅基础表)
—
## 🔍 主要差异分析
### 1. 基础表变更 (18个)
| 表名 | 变更类型 | 描述 |
|——|———-|——|
| fa_auth_rule | ⚠️ 字段删除 | 移除 `pinyin` 和 `py` 字段 |
| fa_area | 📝 注释更新 | `level` 字段注释调整 |
| fa_test | 🔄 重大变更 | 字段重新组织,类型调整 |
### 2. CMS扩展表 (36个)
**website.sql 独有的表,全部保留:**
#### CMS核心功能表
– `fa_cms_archives` – 内容表
– `fa_cms_autolink` – 自动链接
– `fa_cms_block` – 区块管理
– `fa_cms_channel` – 栏目表
– `fa_cms_channel_admin` – 栏目权限
– `fa_cms_collection` – 收藏表
– `fa_cms_comment` – 评论表
– `fa_cms_diyform` – 自定义表单
– `fa_cms_diyform_brandreason` – 品牌原因表单
– `fa_cms_fields` – 模型字段表
– `fa_cms_friendlink` – 友情链接
– `fa_cms_message` – 站内留言
– `fa_cms_model` – 内容模型表
– `fa_cms_navigation` – 热门导航
– `fa_cms_order` – 订单表
– `fa_cms_page` – 单页表
– `fa_cms_report_month` – 销量月报表
– `fa_cms_search_log` – 搜索记录
– `fa_cms_special` – 专题表
– `fa_cms_spider_log` – 搜索引擎来访记录
– `fa_cms_tag` – 标签表
– `fa_cms_taggable` – 标签关联表
#### 其他表
– `fa_signin` – 签到表
– `fa_third` – 第三方登录表
—
## 🚀 升级方案—
## 📊 详细变更记录
### fa_auth_rule 表
**1.2.2 版本结构**:
“`sql
CREATE TABLE `fa_auth_rule` (
…
`status` varchar(30) DEFAULT ” COMMENT ‘状态’,
`pinyin` varchar(100) DEFAULT ” COMMENT ‘拼音’,
`py` varchar(50) DEFAULT ” COMMENT ‘拼音首字母’,
PRIMARY KEY (…)
);
“`
**1.3.2 版本结构**:
“`sql
CREATE TABLE `fa_auth_rule` (
…
`status` varchar(30) DEFAULT ” COMMENT ‘状态’,
PRIMARY KEY (…)
);
“`
**升级操作**: 删除 `pinyin` 和 `py` 字段
—
### fa_area 表
**注释变更**:
– **1.2.2**: `level` COMMENT ‘层级 0 1 2 省市区县’
– **1.3.2**: `level` COMMENT ‘层级:1=省,2=市,3=区/县’
**升级操作**: 更新注释文本
—
### fa_test 表
**字段变化**:
– ❌ 移除: `user_id`, `json`, `multiplejson`, `workrange`
– 🔄 调整: `title` (100→50), `keywords` (255→100)
– 📝 注释: 多个字段注释更新
**迁移策略**:
1. 创建备份表 `fa_test_122_backup`
2. 删除原表
3. 用 1.3.2 结构重新创建
4. 迁移兼容字段数据
5. 删除备份表
—
## ⚠️ 注意事项
### 升级前准备
1. **备份数据库**
“`bash
mysqldump -u root -p database_name > backup_$(date +%Y%m%d).sql
“`
2. **检查存储空间** (确保有足够空间进行备份和重建)
3. **通知用户** (生产环境需提前告知维护窗口)
4. 升级数据库,完整语句如下:
SET FOREIGN_KEY_CHECKS = 0; -- ===================================================== -- 步骤 1: 备份并重建 fa_test 表 -- ===================================================== -- 创建备份表 CREATE TABLE `fa_test_backup` LIKE `fa_test`; -- 备份数据 INSERT INTO `fa_test_backup` SELECT * FROM `fa_test`; -- 删除原表 DROP TABLE `fa_test`; -- 创建新表 (1.3.2版本) CREATE TABLE `fa_test` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `admin_id` int(10) NOT NULL DEFAULT '0' COMMENT '管理员ID', `category_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '分类ID(单选)', `week` enum('monday','tuesday','wednesday') COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '星期(单选)', `flag` set('hot','index','recommend') COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '标志', `genderdata` enum('male','female') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'male' COMMENT '性别', `hobbydata` set('music','reading','swimming') COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '爱好', `title` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '标题', `content` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '内容', `image` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '图片', `images` varchar(1500) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '图片组', `attachfile` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '附件', `keywords` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '关键字', `description` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '描述', `city` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '省市', `price` float(10,2) unsigned NOT NULL DEFAULT '0.00' COMMENT '价格', `views` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '点击', `startdate` date DEFAULT NULL COMMENT '开始日期', `activitytime` datetime DEFAULT NULL COMMENT '活动时间', `year` year(4) DEFAULT NULL COMMENT '年', `times` time DEFAULT NULL COMMENT '时间', `refreshtime` int(10) DEFAULT NULL COMMENT '刷新时间', `createtime` int(10) DEFAULT NULL COMMENT '创建时间', `updatetime` int(10) DEFAULT NULL COMMENT '更新时间', `deletetime` int(10) DEFAULT NULL COMMENT '删除时间', `weigh` int(10) NOT NULL DEFAULT '0' COMMENT '权重', `switch` tinyint(1) NOT NULL DEFAULT '0' COMMENT '开关', `status` enum('normal','hidden') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'normal' COMMENT '状态', `state` enum('0','1','2') COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '1' COMMENT '状态', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='测试表'; -- 迁移数据 INSERT INTO `fa_test` ( `id`, `admin_id`, `category_id`, `week`, `flag`, `genderdata`, `hobbydata`, `title`, `content`, `image`, `images`, `attachfile`, `keywords`, `description`, `city`, `price`, `views`, `startdate`, `activitytime`, `year`, `times`, `refreshtime`, `createtime`, `updatetime`, `deletetime`, `weigh`, `switch`, `status`, `state` ) SELECT `id`, IFNULL(`admin_id`, 0), `category_id`, `week`, `flag`, `genderdata`, `hobbydata`, LEFT(`title`, 50), `content`, `image`, `images`, `attachfile`, LEFT(`keywords`, 100), `description`, `city`, IFNULL(`price`, 0.00), IFNULL(`views`, 0), `startdate`, `activitytime`, `year`, `times`, `refreshtime`, `createtime`, `updatetime`, `deletetime`, IFNULL(`weigh`, 0), IFNULL(`switch`, 0), IFNULL(`status`, 'normal'), IFNULL(`state`, '1') FROM `fa_test_backup`; -- 删除备份表 DROP TABLE `fa_test_backup`; -- ===================================================== -- 步骤 2: 更新 fa_area 注释 -- ===================================================== ALTER TABLE `fa_area` MODIFY COLUMN `level` tinyint(4) DEFAULT NULL COMMENT '层级:1=省,2=市,3=区/县'; SET FOREIGN_KEY_CHECKS = 1; -- ===================================================== -- 升级完成 -- ===================================================== -- 已完成: -- 1. 重建 fa_test 表 -- 2. 迁移数据 -- 3. 更新 fa_area 注释 -- -- 如果升级成功: -- - fa_test 表现在与 1.3.2 版本一致 -- - 数据已安全迁移 -- -- 如果需要回滚: -- SELECT * FROM fa_test_backup; -- (如果备份表还存在) -- =====================================================
5. 升级代码
下载1.3.2完整代码进行覆盖升级(切记一定要先备份原有所有文件!)
下载地址为:https://gitee.com/fastadminnet/fastadmin/tags
### 升级后检查
1. 验证应用功能正常
2. 检查CMS扩展表数据是否完整
3. 查看错误日志
4. 测试核心功能
### 回滚方案
如果升级失败,从备份恢复:
“`bash
mysql -u root -p database_name < backup_20251203.sql
“`
—
## 📝 索引优化
升级脚本会自动优化以下索引:
“`sql
— fa_auth_rule
UNIQUE KEY `name` (`name`) USING BTREE
— fa_category
KEY `weigh` (`weigh`,`id`)
— fa_config
UNIQUE KEY `name` (`name`)
“`
—
## 📞 技术支持
如遇到问题,请联系我的微信: harriewang
1. 查看 MySQL 错误日志
2. 检查 `fa_test_122_backup` 备份表是否存在
3. 验证基础表结构是否正确升级
—
## 📅 更新日志- 完成 1.2.2 → 1.3.2 差异分析
– 提供两种升级方案
– 创建详细文档
—
**升级愉快!** 🎉


