签入版本
This commit is contained in:
@@ -109,9 +109,9 @@ php think db:migrate [选项]
|
||||
# --drop-target-first → 迁移前先删除目标库中的同名表(避免表已存在报错)
|
||||
php think db:migrate \
|
||||
--src-type=mysql --src-host=127.0.0.1 --src-hostport=3306 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=root --src-password=root \
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=root --src-password=root \
|
||||
--dst-type=pgsql --dst-host=127.0.0.1 --dst-hostport=5432 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.elevue --dst-username=postgres --dst-password=123456 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.naivevue --dst-username=postgres --dst-password=123456 \
|
||||
--drop-target-first
|
||||
```
|
||||
|
||||
@@ -125,9 +125,9 @@ php think db:migrate \
|
||||
# --dst-hostport=1433 → SQL Server 默认端口
|
||||
php think db:migrate \
|
||||
--src-type=mysql --src-host=127.0.0.1 --src-hostport=3306 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=root --src-password=root \
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=root --src-password=root \
|
||||
--dst-type=sqlsrv --dst-host=127.0.0.1 --dst-hostport=1433 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.elevue --dst-username=sa --dst-password=123456 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.naivevue --dst-username=sa --dst-password=123456 \
|
||||
--drop-target-first
|
||||
```
|
||||
|
||||
@@ -141,8 +141,8 @@ php think db:migrate \
|
||||
# --dst-database → SQLite 文件路径(文件不存在时自动创建)
|
||||
php think db:migrate \
|
||||
--src-type=mysql --src-host=127.0.0.1 --src-hostport=3306 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=root --src-password=root \
|
||||
--dst-type=sqlite --dst-database=runtime/rxthinkcmf.thinkphp6.elevue.db
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=root --src-password=root \
|
||||
--dst-type=sqlite --dst-database=runtime/rxthinkcmf.thinkphp6.naivevue.db
|
||||
```
|
||||
|
||||
### MySQL → MySQL(同库复制)
|
||||
@@ -167,9 +167,9 @@ php think db:migrate \
|
||||
# -----------------------------------------------------------------------------
|
||||
php think db:migrate \
|
||||
--src-type=pgsql --src-host=127.0.0.1 --src-hostport=5432 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=postgres --src-password=123456 \
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=postgres --src-password=123456 \
|
||||
--dst-type=mysql --dst-host=127.0.0.1 --dst-hostport=3306 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.elevue --dst-username=root --dst-password=root \
|
||||
--dst-database=rxthinkcmf.thinkphp6.naivevue --dst-username=root --dst-password=root \
|
||||
--drop-target-first
|
||||
```
|
||||
|
||||
@@ -181,9 +181,9 @@ php think db:migrate \
|
||||
# -----------------------------------------------------------------------------
|
||||
php think db:migrate \
|
||||
--src-type=sqlsrv --src-host=127.0.0.1 --src-hostport=1433 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=sa --src-password=123456 \
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=sa --src-password=123456 \
|
||||
--dst-type=mysql --dst-host=127.0.0.1 --dst-hostport=3306 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.elevue --dst-username=root --dst-password=root \
|
||||
--dst-database=rxthinkcmf.thinkphp6.naivevue --dst-username=root --dst-password=root \
|
||||
--drop-target-first
|
||||
```
|
||||
|
||||
@@ -196,9 +196,9 @@ php think db:migrate \
|
||||
# --tables=think_user,think_role,think_menu → 只迁移这 3 张表
|
||||
php think db:migrate \
|
||||
--src-type=mysql --src-host=127.0.0.1 --src-hostport=3306 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=root --src-password=root \
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=root --src-password=root \
|
||||
--dst-type=pgsql --dst-host=127.0.0.1 --dst-hostport=5432 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.elevue --dst-username=postgres --dst-password=123456 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.naivevue --dst-username=postgres --dst-password=123456 \
|
||||
--tables=think_user,think_role,think_menu \
|
||||
--drop-target-first
|
||||
```
|
||||
@@ -210,17 +210,17 @@ php think db:migrate \
|
||||
```bash
|
||||
$ php think db:migrate \
|
||||
--src-type=mysql --src-host=127.0.0.1 --src-hostport=3306 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=root --src-password=root \
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=root --src-password=root \
|
||||
--dst-type=pgsql --dst-host=127.0.0.1 --dst-hostport=5432 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.elevue --dst-username=postgres --dst-password=123456 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.naivevue --dst-username=postgres --dst-password=123456 \
|
||||
--drop-target-first
|
||||
|
||||
==============================================================
|
||||
[迁移开始] 源: mysql:rxthinkcmf.thinkphp6.elevue → 目标: pgsql:rxthinkcmf.thinkphp6.elevue
|
||||
[迁移开始] 源: mysql:rxthinkcmf.thinkphp6.naivevue → 目标: pgsql:rxthinkcmf.thinkphp6.naivevue
|
||||
[迁移开始] 待迁移 25 张表
|
||||
==============================================================
|
||||
[·] [1/5] 建目标库...
|
||||
· 目标库 "rxthinkcmf.thinkphp6.elevue" 已就绪
|
||||
· 目标库 "rxthinkcmf.thinkphp6.naivevue" 已就绪
|
||||
[✓] [1/5] 建目标库 完成(耗时 0ms)
|
||||
[·] [2/5] 建表结构(25 张表)...
|
||||
[✓] [2/5] 建表结构 完成(耗时 440ms),25 张表,118 个索引,0 个外键
|
||||
@@ -266,17 +266,17 @@ $ php think db:migrate \
|
||||
```bash
|
||||
$ php think db:migrate \
|
||||
--src-type=mysql --src-host=127.0.0.1 --src-hostport=3306 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=root --src-password=root \
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=root --src-password=root \
|
||||
--dst-type=sqlsrv --dst-host=127.0.0.1 --dst-hostport=1433 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.elevue --dst-username=sa --dst-password=123456 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.naivevue --dst-username=sa --dst-password=123456 \
|
||||
--drop-target-first
|
||||
|
||||
==============================================================
|
||||
[迁移开始] 源: mysql:rxthinkcmf.thinkphp6.elevue → 目标: sqlsrv:rxthinkcmf.thinkphp6.elevue
|
||||
[迁移开始] 源: mysql:rxthinkcmf.thinkphp6.naivevue → 目标: sqlsrv:rxthinkcmf.thinkphp6.naivevue
|
||||
[迁移开始] 待迁移 25 张表
|
||||
==============================================================
|
||||
[·] [1/5] 建目标库...
|
||||
· 目标库 "rxthinkcmf.thinkphp6.elevue" 已就绪
|
||||
· 目标库 "rxthinkcmf.thinkphp6.naivevue" 已就绪
|
||||
[✓] [1/5] 建目标库 完成(耗时 0ms)
|
||||
[·] [2/5] 建表结构(25 张表)...
|
||||
[✓] [2/5] 建表结构 完成(耗时 1.5s),25 张表,118 个索引,0 个外键
|
||||
@@ -298,13 +298,13 @@ $ php think db:migrate \
|
||||
```bash
|
||||
$ php think db:migrate \
|
||||
--src-type=mysql --src-host=127.0.0.1 --src-hostport=3306 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=root --src-password=root \
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=root --src-password=root \
|
||||
--dst-type=oracle --dst-host=127.0.0.1 --dst-hostport=1521 \
|
||||
--dst-database=rxthinkcmf --dst-username=system --dst-password=123456 \
|
||||
--drop-target-first
|
||||
|
||||
==============================================================
|
||||
[迁移开始] 源: mysql:rxthinkcmf.thinkphp6.elevue → 目标: oracle:rxthinkcmf.thinkphp6.elevue
|
||||
[迁移开始] 源: mysql:rxthinkcmf.thinkphp6.naivevue → 目标: oracle:rxthinkcmf.thinkphp6.naivevue
|
||||
[迁移开始] 待迁移 25 张表
|
||||
==============================================================
|
||||
[·] [1/5] 建目标库...
|
||||
@@ -347,15 +347,15 @@ $ php think db:migrate \
|
||||
```bash
|
||||
$ php think db:migrate \
|
||||
--src-type=mysql --src-host=127.0.0.1 --src-hostport=3306 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=root --src-password=root \
|
||||
--dst-type=sqlite --dst-database=runtime/rxthinkcmf.thinkphp6.elevue.db
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=root --src-password=root \
|
||||
--dst-type=sqlite --dst-database=runtime/rxthinkcmf.thinkphp6.naivevue.db
|
||||
|
||||
==============================================================
|
||||
[迁移开始] 源: mysql:rxthinkcmf.thinkphp6.elevue → 目标: sqlite:runtime/rxthinkcmf.thinkphp6.elevue.db
|
||||
[迁移开始] 源: mysql:rxthinkcmf.thinkphp6.naivevue → 目标: sqlite:runtime/rxthinkcmf.thinkphp6.naivevue.db
|
||||
[迁移开始] 待迁移 25 张表
|
||||
==============================================================
|
||||
[·] [1/5] 建目标库...
|
||||
· 目标库 "runtime/rxthinkcmf.thinkphp6.elevue.db" 已就绪
|
||||
· 目标库 "runtime/rxthinkcmf.thinkphp6.naivevue.db" 已就绪
|
||||
[✓] [1/5] 建目标库 完成(耗时 0ms)
|
||||
[·] [2/5] 建表结构(25 张表)...
|
||||
[✓] [2/5] 建表结构 完成(耗时 1s),25 张表,118 个索引,0 个外键
|
||||
@@ -378,18 +378,18 @@ $ php think db:migrate \
|
||||
```bash
|
||||
$ php think db:migrate \
|
||||
--src-type=mysql --src-host=127.0.0.1 --src-hostport=3306 \
|
||||
--src-database=rxthinkcmf.thinkphp6.elevue --src-username=root --src-password=root \
|
||||
--src-database=rxthinkcmf.thinkphp6.naivevue --src-username=root --src-password=root \
|
||||
--dst-type=pgsql --dst-host=127.0.0.1 --dst-hostport=5432 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.elevue --dst-username=postgres --dst-password=123456 \
|
||||
--dst-database=rxthinkcmf.thinkphp6.naivevue --dst-username=postgres --dst-password=123456 \
|
||||
--tables=think_user,think_role,think_menu \
|
||||
--drop-target-first
|
||||
|
||||
==============================================================
|
||||
[迁移开始] 源: mysql:rxthinkcmf.thinkphp6.elevue → 目标: pgsql:rxthinkcmf.thinkphp6.elevue
|
||||
[迁移开始] 源: mysql:rxthinkcmf.thinkphp6.naivevue → 目标: pgsql:rxthinkcmf.thinkphp6.naivevue
|
||||
[迁移开始] 待迁移 3 张表
|
||||
==============================================================
|
||||
[·] [1/5] 建目标库...
|
||||
· 目标库 "rxthinkcmf.thinkphp6.elevue" 已就绪
|
||||
· 目标库 "rxthinkcmf.thinkphp6.naivevue" 已就绪
|
||||
[✓] [1/5] 建目标库 完成(耗时 0ms)
|
||||
[·] [2/5] 建表结构(3 张表)...
|
||||
· 已删除目标表: think_user
|
||||
@@ -789,7 +789,7 @@ D:\xampp8.2\php\php.exe -m | findstr sqlite
|
||||
5. `--drop-target-first` 会删除目标表的全部数据(含索引、外键和注释),请谨慎使用
|
||||
6. 大表迁移建议调大 `--batch-size`(如 5000)以提高效率
|
||||
7. 迁移过程中如遇中断,已提交的 `--batch-size` 批次数据不会回滚,建议使用 `--drop-target-first` 重试
|
||||
8. 含点号的数据库名(如 `rxthinkcmf.thinkphp6.elevue`)各驱动均已适配
|
||||
8. 含点号的数据库名(如 `rxthinkcmf.thinkphp6.naivevue`)各驱动均已适配
|
||||
9. 索引、外键和注释在建表阶段同步迁移,使用 `--drop-target-first` 重建时会一并重建
|
||||
10. 外键约束在所有表创建后统一添加,避免引用顺序问题
|
||||
11. 命令退出码:成功返回 0,失败或行数校验未通过返回 1(可用于 CI/CD 判断)
|
||||
@@ -850,7 +850,7 @@ A: Oracle 没有原生自增语法。迁移工具会自动为自增列创建序
|
||||
|
||||
### Q: 含点号的数据库名支持吗?
|
||||
|
||||
A: 支持。如 `rxthinkcmf.thinkphp6.elevue` 这类含点号的库名,各驱动均已适配。
|
||||
A: 支持。如 `rxthinkcmf.thinkphp6.naivevue` 这类含点号的库名,各驱动均已适配。
|
||||
|
||||
### Q: SQLite 作为目标有什么限制?
|
||||
|
||||
|
||||
Reference in New Issue
Block a user