laravel将localhost mysql数据库同步到宿主服务器

guicsvcw  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(352)

我想做一个离线与拉威尔在线网络应用程序。当用户有互联网连接,所以它需要自动同步mysql数据库或我会为同步按钮。我试图找到解决办法,但不幸的是,我没有找到任何解决办法。
或者我可以进出口吗?我也试过这个
https://github.com/midwesterninteractive/laravel-db-sync

REMOTE_SYNC_URL=
REMOTE_SYNC_DB_NAME=
REMOTE_SYNC_SSH_USERNAME=
REMOTE_SYNC_SSH_PASSWORD=
9q78igpj

9q78igpj1#

你不需要任何额外的包裹。
将两个数据库(本地和实时)的单独凭据提供给 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', '127.0.0.1'),
  'port' => env('DB_LIVE_PORT', '3306'),
  'database' => env('DB_LIVE_DATABASE', 'forge'),
  'username' => env('DB_LIVE_USERNAME', 'forge'),
  'password' => env('DB_LIVE_PASSWORD', ''),
],

把它们放在环境变量里
例如,现在您需要将表从live同步到local

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);
     }
  }

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

相关问题