Laravel 5.7 mengalami masalah dalam memigrasi database baca-tulis terpisah

Saya mengalami skenario berikut:

Saya ingin membagi database saya menjadi database baca dan tulis terpisah. Oleh karena itu saya telah menyiapkan config/database.php

    'mysql' => [
        'driver' => 'mysql',
        'write' => ['host' => env('DB_HOST_WRITE', 'localhost'),],
        'read'  => ['host' => env('DB_HOST_READ', 'localhost'),],
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
    ],

Untuk DB_HOST_WRITE dan DB_HOST_READ Saya telah menetapkan alamat IP untuk server tempat database berjalan.

Untuk DB_DATABASE, DB_USERNAME, DB_PASSWORD Saya telah menyiapkan nama database dan kredensial login.

Kedua server dapat dijangkau, ketika saya mencoba mengaksesnya menggunakan perintah konsol mysql seperti ini: mysql -u USERNAME -h IPADDRESS -p

Inilah masalahnya: Ketika saya mencoba menjalankan migrasi saya dari server ketiga seperti ini

php artisan migrate

Namun hanya database tulis yang disiapkan.

Apakah ini perilaku yang diharapkan?

Apakah saya harus memigrasi setiap database secara manual?

Apakah ada tanda untuk perintah migrasi, yang memungkinkan saya menentukan koneksi tempat saya ingin bermigrasi?

Saya tidak dapat menemukan apa pun tentang migrasi basis data baca tulis ketika saya mencarinya di Google.

Tidak ada pengaturan basis data lebih lanjut yang dilakukan. Sumber informasi saya adalah panduan berikut: https://laravel.com/docs/5.7/database#read-and-write-connections

Tautan ke panduan bermanfaat atau saran solusi sangat kami harapkan.

Terima kasih atas perhatian Anda.


person Richard Wieditz    schedule 12.02.2019    source sumber
comment
Bagaimana replikasi database Anda dikonfigurasi antar database Anda?   -  person Travis Britz    schedule 13.02.2019
comment
Kemungkinan duplikat stackoverflow.com/ pertanyaan/26654846/   -  person Travis Britz    schedule 13.02.2019


Jawaban (1)


ke @Travis Britz: Terima kasih atas petunjuknya. Saya melewatkan istilah "Replikasi MySQL", yang tidak dikomentari dalam dokumentasi laravel. Saya salah mengira algoritma laravel menangani sinkronisasi sendiri, padahal sebenarnya tidak terjadi.

Sinkronisasi antar server database ditangani oleh mekanisme internal MySQL

masukkan deskripsi gambar di sini

Dengan algoritma MySQL ini saya dapat mencapai struktur komunikasi seperti itu, yang mungkin merupakan tugas umum dalam langkah penerapan aplikasi web:

masukkan deskripsi gambar di sini

Saya mengikuti panduan ini melalui digital ocean untuk menyiapkan replikasi mysql secara manual: https://www.digitalocean.com/community/tutorials/how-to-set-up-master-slave-replication-in-mysql

Digital Ocean adalah penyedia server tempat saya menghosting aplikasi saya.

Gambar diambil dari: https://www.toptal.com/mysql/mysql-master-slave-replication-tutorial

Salam.

person Richard Wieditz    schedule 13.02.2019