我经常想将生产数据库同步到本地数据库并手动导出和导入,所以我写了一个包来自动化它!

一个警告,如果您在组织的政策范围内有权将远程数据库同步到本地数据库,您应该只将其同步到本地数据库。我在开发的早期阶段进行同步,其中数据主要是测试数据,而不是实际的客户数据。

我写了一个名为Laravel DB Sync的包

安装包:

composer require dcblogdev/laravel-db-sync

发布配置文件

php artisan vendor:publish --provider="Dcblogdev\DbSync\DbSyncServiceProvider" --tag="config"

在 .env 文件中设置远程数据库凭据

使用 SSH 时添加:

REMOTE_USE_SSH=true
REMOTE_SSH_PORT=22
REMOTE_SSH_USERNAME=
REMOTE_DATABASE_HOST=

REMOTE_DATABASE_USERNAME=
REMOTE_DATABASE_NAME=
REMOTE_DATABASE_PASSWORD=
REMOTE_DATABASE_IGNORE_TABLES=''

REMOTE_REMOVE_FILE_AFTER_IMPORT=true
REMOTE_IMPORT_FILE=true

仅适用于 MySQL 远程连接:

REMOTE_DATABASE_HOST=
REMOTE_DATABASE_USERNAME=
REMOTE_DATABASE_NAME=
REMOTE_DATABASE_PASSWORD=
REMOTE_DATABASE_IGNORE_TABLES=''

REMOTE_REMOVE_FILE_AFTER_IMPORT=true
REMOTE_IMPORT_FILE=true

如果要排除某些表,可以将它们添加到 REMOTE_DATABASE_IGNORE_TABLES 例如忽略正在导出的用户和作业

REMOTE_DATABASE_IGNORE_TABLES='users,jobs'

现在,当您要将远程数据库导出到本地数据库时,请运行:

php artisan db:production-sync

https://github.com/dcblogdev/laravel-db-sync

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。