Vous pouvez essayer d'envoyer psql
en arrière-plan:
psql -f your_sql_file.sql &
Ou, en vous connectant à la base de données locale, vous pouvez utiliser dblink
pour envoyer une requête vers la base de données distante:
SELECT dblink_connect('your_connection_name', 'your_connection_string');
SELECT dblink_send_query('your_connection_name', 'your_query');
Notez que dblink_send_query
vous ne pouvez envoyer qu'une seule requête à la fois. Donc, si vous souhaitez exécuter plusieurs instructions SQL, ce n'est pas votre solution.
Ou, vous pouvez démarrer un pg_agent
travail sur le serveur distant, ce qui ne nécessite aucune intervention manuelle, par conséquent, l'état de votre box d'accueil n'a aucun effet sur l'exécution de votre travail. La même chose peut être obtenue en configurant un travail cron
(ou mieux encore, at
merci Erwin) exécutant votre script.
En outre, si vous avez un travail long que vous démarrez manuellement, vous pouvez démarrer une screen
session sur le serveur et exécuter le fichier à partir de là. Dans ce cas, vous pouvez vous déconnecter et rentrer chez vous, et le script continuera de fonctionner.
tmux
fonctionne- t-il de cette façon: «Pourrai-je arrêter ma machine locale et la requête sera toujours traitée sur le serveur distant»?