31 lines
1.4 KiB
Plaintext
31 lines
1.4 KiB
Plaintext
数据库升级包目录(install/upgrades)
|
||
================================================
|
||
|
||
用途
|
||
----
|
||
将「升级脚本」(.sql 文件)放入本目录后,进入后台「数据库升级」页面,
|
||
系统会自动扫描并提示「发现 N 个可升级数据库脚本」,管理员可一键或逐个执行。
|
||
每次执行都会在 db_upgrades 表中留下记录(文件名、内容指纹 MD5、执行时间、操作人),
|
||
便于追溯与审计。
|
||
|
||
命名建议
|
||
--------
|
||
序号_功能描述.sql 例如 001_add_member_level.sql
|
||
序号便于排序与阅读,文件名(不含路径)作为唯一标识写入 db_upgrades。
|
||
若同一文件内容被修改后再次放入,系统会识别为「内容已变更」并提示重新升级。
|
||
|
||
编写规范
|
||
--------
|
||
1. 仅放 DDL / DML 的标准 MySQL 脚本;多条语句以分号(;)分隔,自动拆分执行。
|
||
2. 优先使用「幂等写法」,避免重复执行报错,例如:
|
||
CREATE TABLE IF NOT EXISTS xxx (...);
|
||
ALTER TABLE yyy ADD COLUMN IF NOT EXISTS zzz ...; -- MySQL 8.0.28+
|
||
INSERT INTO ... ON DUPLICATE KEY UPDATE ...;
|
||
3. 不建议在升级包中执行 DROP TABLE / TRUNCATE 等破坏性语句,除非确有必要。
|
||
4. 升级前请务必备份数据库。
|
||
|
||
说明
|
||
----
|
||
- 本目录下的 examples/ 子目录为示例,不会被自动扫描(仅扫描本目录根下的 *.sql)。
|
||
- 想试用示例时,请将 examples/ 中的文件复制到本目录根下再执行。
|