mukellef/database-sync

此包最新版本(dev-main)没有可用的许可证信息。

同步数据库下载数据。

dev-main 2024-06-26 10:01 UTC

This package is auto-updated.

Last update: 2024-09-26 10:46:20 UTC


README

存在一个 Discord 社区。 https://discord.gg/VYau8hgwrm 若需快速帮助,请在适当的频道中提问。

Laravel DB 同步

DB Dync

简介

将远程数据库同步到本地数据库

请注意,只有当您在组织政策中拥有同步远程数据库到本地数据库的权限时,才应同步远程数据库到本地数据库。我在开发初期同步数据,此时数据主要是测试数据,并非实际客户数据。

可以通过 SSH 或使用远程 MySQL 连接建立连接。

安装

安装此包。

composer require dcblogdev/laravel-db-sync

配置

您可以使用以下命令发布配置文件:

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

.env

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

当使用 SSH 时添加

REMOTE_USE_SSH=true
REMOTE_SSH_PORT=22
REMOTE_SSH_USERNAME=
REMOTE_DATABASE_HOST=

REMOTE_DATABASE_USERNAME=
REMOTE_DATABASE_PORT=3306
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_PORT=3306
REMOTE_DATABASE_NAME=
REMOTE_DATABASE_PASSWORD=
REMOTE_DATABASE_IGNORE_TABLES=''

REMOTE_REMOVE_FILE_AFTER_IMPORT=true
REMOTE_IMPORT_FILE=true

REMOTE_DATABASE_IGNORE_TABLES 中设置不导出的表名列表,以逗号分隔

为了生成具有自定义文件名的 SQL 文件,请使用 REMOTE_DEFAULT_FILE_NAME

为了指定不同的本地数据库连接

LOCAL_TARGET_CONNECTION=different_mysql_connection

设置 mysql 命令路径

LOCAL_MYSQL_PATH=/usr/bin/mysql

仅用于 mysqldump

REMOTE_MYSQLDUMP_SKIP_TZ_UTC=true

用法

要导出远程数据库以覆盖本地数据库,请运行以下命令:

php artisan db:production-sync

通过传递 --filename 选项,在运行时提供导出文件的名称,请记住提供 .sql 扩展名

php artisan db:production-sync --filename=other.sql

运行命令而不尝试导出

php artisan db:production-sync --test

别名

可以使用以下快捷方式

-T = 使用 --test F = 使用 --filename

替代名称

当连接到非生产数据库(如预发布数据库)时,可以选择使用此替代名称

db:remote-sync 可用于替代 db:production-sync