Импорт данных из внешней базы данных в Laravel

#php #database #laravel

Вопрос:

Я начал создавать инструмент электронной почты с целью управления отзывами пользователей. Однако я застрял на одном из требований. Существует функция-запрос на динамический импорт базы данных клиентов без какой-либо загрузки (есть опция загрузки файла csv, но это отдельная функция). Это означает, что пользователь, регистрирующийся в приложении, должен иметь возможность подключиться к своей базе данных и в основном получать оттуда все результаты.

Вопрос в том, возможно ли это вообще? Могу ли я подключиться к базе данных на удаленном сервере? Что делать, если доступ к базе данных ограничен только локальным хостом? Я знаю, что можно установить в .env. файл DB_HOST`, но может ли это преодолеть ограничения?

Комментарии:

1. Я думаю, что если база данных имеет ограниченный доступ только к локальному хосту, у вас нет возможности подключиться к ней с другого хоста. У вас нет конечной точки приложения, которую можно вызвать для запроса данных?

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

Ответ №1:

Если бы вы могли подключиться к своему серверу через SSH, вы могли бы создать SSH-туннель:

https://startingcraft.com/articles/connect-forge-databases-via-ssh-tunnel

Затем просто зарегистрируйте новое соединение config/database.php с хостом сервера и учетными данными и запросите удаленную базу данных следующим образом:

 DB::connection('connectionName')->table('posts')->get();
 

Комментарии:

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

2. Если вы не можете подключиться к этим серверам извне, нет API и нет экспорта… Скажите своему клиенту, что вам нужен один из этих 3