Laravel синхронизирует базу данных localhost MySql с хост-сервером - PullRequest
0 голосов
/ 03 октября 2018

Я хочу создать офлайновое онлайн-приложение с Laravel.Когда у пользователей есть подключение к интернету, поэтому необходимо автоматически синхронизировать базу данных MySql, или я сделаю кнопку для синхронизации.Я пытался найти решения, но, к сожалению, я не нашел никакого решения.

Или это возможно, если я сделаю импорт-экспорт?Я попробовал это также

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

REMOTE_SYNC_URL=
REMOTE_SYNC_DB_NAME=
REMOTE_SYNC_SSH_USERNAME=
REMOTE_SYNC_SSH_PASSWORD=

1 Ответ

0 голосов
/ 03 октября 2018

Для этого вам не нужно никаких дополнительных пакетов.

Предоставьте отдельные учетные данные для двух баз данных (локальной и оперативной) для 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', ''),
],

и установите их в env veriables

Теперь, например, вы хотите синхронизировать таблицу из живого в локальное

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

Надеюсь, это даст вам базовую концепцию синхронизации двух баз данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...