# 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 差异分析
– 提供两种升级方案
– 创建详细文档

**升级愉快!** 🎉


Avatar photo
Harrie

我是王岩,2010年为了扩展自己的事业,我成立了一家互联网公司:上海岩创网络科技有限公司,2011年加入宏路数据任技术总监,2017年成立动乂岩数据技术有限公司同时兼任动点科技CTO。现在我正在搭建团队,在微信生态和企业服务领域进行探索。我的联系方式是:手机:13918304704 微信: harriewang QQ:13689186 欢迎大家跟我交流和讨论。

所有文章