chore: init saasshop repo + sql migrations runner + gitee go
This commit is contained in:
68
docs/DB_SQL_MIGRATIONS.md
Normal file
68
docs/DB_SQL_MIGRATIONS.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# SaaSShop 数据库结构迁移(SQL 版)
|
||||
|
||||
> 目标:数据库**结构变更**以 SQL 脚本形式版本化,便于在新环境 / CI(Gitee Go)自动执行。
|
||||
>
|
||||
> 约束:只推结构变更,不推业务数据。
|
||||
|
||||
## 目录与命名
|
||||
|
||||
- 脚本目录:`database/migrations/`
|
||||
- 命名规则:`V{数字}__{描述}.sql`
|
||||
- 示例:`V2__add_platform_order_indexes.sql`
|
||||
- 数字必须递增(V1、V2、V3...)
|
||||
|
||||
## 执行方式
|
||||
|
||||
### 1)Laravel 原生迁移
|
||||
|
||||
首次初始化仍执行 Laravel migration(PHP 迁移),用于建立基础表:
|
||||
|
||||
```bash
|
||||
php artisan migrate --force
|
||||
```
|
||||
|
||||
### 2)SQL 脚本迁移
|
||||
|
||||
执行 SQL 结构迁移:
|
||||
|
||||
```bash
|
||||
composer run db:sql-migrate
|
||||
# 或
|
||||
php scripts/sql_migrate.php
|
||||
```
|
||||
|
||||
该命令会:
|
||||
- 扫描 `database/migrations/V*__*.sql`
|
||||
- 按版本号升序执行
|
||||
- 执行成功后写入记录表 `schema_sql_migrations`
|
||||
|
||||
## 记录表
|
||||
|
||||
- 表名:`schema_sql_migrations`
|
||||
- 字段:
|
||||
- `version`:如 `V1` / `V2`
|
||||
- `description`:从文件名解析
|
||||
- `applied_at`:执行时间
|
||||
|
||||
## 编写脚本建议
|
||||
|
||||
- **仅结构变更**:CREATE/ALTER/DROP/INDEX 等
|
||||
- 不写 INSERT/UPDATE 业务数据(除非是结构初始化必要数据,且要评估影响)
|
||||
- 每个脚本尽量“可重复执行”或在脚本内加存在性判断(视具体 DB 方言支持)
|
||||
|
||||
## 新环境落地步骤(推荐)
|
||||
|
||||
```bash
|
||||
git clone <repo>
|
||||
cd saasshop
|
||||
composer install
|
||||
cp .env.example .env
|
||||
php artisan key:generate
|
||||
php artisan migrate --force
|
||||
composer run db:sql-migrate
|
||||
php artisan test
|
||||
```
|
||||
|
||||
## CI(Gitee Go)
|
||||
|
||||
仓库内提供 `.gitee/go.yml` 模板,需在 Gitee Go 中配置数据库连接与环境变量后启用。
|
||||
Reference in New Issue
Block a user