gpt4 book ai didi

javascript - Laravel 将本地主机 MySql 数据库同步到托管服务器

转载 作者:行者123 更新时间:2023-11-29 02:40:46 25 4
gpt4 key购买 nike

我想用 Laravel 制作离线在线 Web 应用程序。当用户有互联网连接时,它需要自动同步 MySql 数据库,否则我会制作一个同步按钮。我尝试了解决方案,但不幸的是我没有找到任何解决方案。

或者我是否可以进行导入导出?我也试过了

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

REMOTE_SYNC_URL=
REMOTE_SYNC_DB_NAME=
REMOTE_SYNC_SSH_USERNAME=
REMOTE_SYNC_SSH_PASSWORD=

最佳答案

你不需要任何额外的包。

将两个数据库(本地和实时)的单独凭据提供给连接数组内的 database.php 配置文件。

示例:

'my-local-db' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
],

'my-live-db' => [
'driver' => 'mysql',
'host' => env('DB_LIVE_HOST', '103.149.104.68'), // Put your live server database host here
'port' => env('DB_LIVE_PORT', '3306'),
'database' => env('DB_LIVE_DATABASE', 'forge'),
'username' => env('DB_LIVE_USERNAME', 'forge'),
'password' => env('DB_LIVE_PASSWORD', ''),
],

并在环境变量中设置它们

现在,例如你想要同步表从实时到本地

public function sync() {
// Connect to live database
$live_database = DB::connection('my-live-db');
// Get table data from production
foreach($live_database->table('table_name')->get() as $data){
// Save data to staging database - default db connection
DB::table('table_name')->insert((array) $data);
}
// Get table_2 data from production
foreach($live_database->table('table_2_name')->get() as $data){
// Save data to staging database - default db connection
DB::table('table_2_name')->insert((array) $data);
}
}

希望这能给你一个关于两个数据库同步的基本概念

关于javascript - Laravel 将本地主机 MySql 数据库同步到托管服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52621082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com