temori / distancexport
一种能够在具有不同结构的数据库之间迁移数据的迁移工具。
Requires
- php: >=5.4
- phpunit/phpunit: ^4.8
Requires (Dev)
- vlucas/phpdotenv: ^5.2
This package is auto-updated.
Last update: 2024-09-05 09:13:58 UTC
README
数据库之间的数据迁移工具。
无论是否是关系型数据库,都可以进行数据迁移。
目录
特性
-
数据库数据迁移工具。
-
两个数据库之间的数据迁移是可能的。
-
在类似 Google 表格的网页中,将源列中的数据迁移到目标列所在的同一行。
-
默认仅支持 Mysql 和 pgsql 驱动程序。
如果您想使用其他驱动程序,您可以添加驱动类。
要求
- php 5.4 或更高版本
安装
使用 composer
cd path/to/your/project
composer require temori/distancexport --dev
使用
-
创建一个 php 文件。
如果您使用任何框架,创建可路由的控制器。
-
定义以下常量。
- 对于目标数据库。
DX_DESTINATION_DB_DRIVER
目标数据库驱动程序。DX_DESTINATION_DB_HOST
目标数据库主机。DX_DESTINATION_DB_PORT
目标数据库端口。DX_DESTINATION_DB_USERNAME
目标数据库用户名。DX_DESTINATION_DB_PASSWORD
目标数据库密码。
- 对于源数据库。
DX_SOURCE_DB_DRIVER
源数据库驱动程序。DX_SOURCE_DB_HOST
源数据库主机。DX_SOURCE_DB_PORT
源数据库端口。DX_SOURCE_DB_USERNAME
源数据库用户名。DX_SOURCE_DB_PASSWORD
源数据库密码。
- 当需要 csrf 令牌时。
DX_CSRF_TOKEN_NAME
CSRF 令牌名称字段。DX_CSRF_TOKEN
CSRF 令牌字段。
- 对于目标数据库。
-
使用创建的 php 文件或控制器创建
\Temori\Distancexport\Distancexport
的实例,并执行init()
方法,如下所示。$dis = new \Temori\Distancexport\Distancexport(); $dis->init();
-
如果您使用的框架需要路由设置,您需要创建
get
和post
路由。 -
打开上述 php 文件或控制器 URL。
-
由于表名、数据类型、键类型等像电子表格一样排列,请将您要迁移的列名复制并粘贴到迁移目标数据库列旁边。
迁移所需列是
目标数据库
中的字段
和源数据库
中的字段
。如果
源数据库
中的字段
为空,则忽略数据迁移。如果您在
统一性
列中输入字符串作为选项,则在所有记录中添加统一性
中描述的字符串。 -
Dry run
按钮执行测试执行,而Run
按钮执行数据迁移。如果发生异常,将在
结果
和消息
中显示错误消息。
支持的 RDB 驱动类型
- Mysql
- postgresql
添加 RDB 驱动
如果您想,可以添加其他驱动类。
对于要创建的类,实现 BaseDriver
类并继承 Connect
类。
此外,创建一个产生与以下类相同执行结果的方法。
如下所示指定在创建实例时添加的驱动程序类。
$dis = new \Temori\Distancexport\Distancexport(\Some\NameSpace\DestinationDriverClass::class, \Some\NameSpace\SourceDriverClass::class);
注意
[警告]
由于显示整个数据库结构,请在使用时注意安全。
许可
Paddington 在 MIT 许可下发布。
版权所有 © 2020,Atushi Inoue