Выполните указатель c, чтобы выбрать необработанные запросы в базе данных записи, чтобы получить данные со скоростью sh из-за задержки репликации. - PullRequest
1 голос
/ 09 марта 2020

Я использую в своем Laravel 5.7 приложении схему репликации базы данных master-slave, используя postgresql:

'mydb' => [
    'driver' => 'pgsql',

    'read'  => [
        'host' => env('DB_HOST_READ', '192.168.2.3'),
    ],
    'write' => [
        'host' => env('DB_HOST_WRITE', '192.168.2.5'),
    ],
    'port'     => env('DB_PORT', '5432'),
    'database' => env('DB_DATABASE', 'mydb'),
    'username' => env('DB_USERNAME', ''),
     'password' => env('DB_PASSWORD', ''),
    'charset'  => 'utf8',
    'prefix'   => '',
    'schema'   => 'public',
    'sslmode'  => 'prefer',
],

И мне были предоставлены некоторые необработанные запросы для выполнения (запрос был предоставлен в моем виде Джира билет). Эти запросы являются отчетными запросами, которые нуждаются в свободных данных sh, поэтому я не хочу много их возиться.

Сам Laravel предоставляет способы сделать это, но либо требует создания модели, например:

MyModel::limit(10)->useWritePdo()->get();

, либо построитель запросов:

DB::connection("mydb")->table('user')->select("*")->limit(10)->useWritePdo()->get();

Но Я хочу сделать следующее:

DB::connection("mydb")->useWritePdo()->select("SELECT * from et_user");

Есть ли способ сделать это?

...