2016-08-25 5 views
0

Я хочу получить данные в базе данных psql с моего компьютера local vi ssh ruby. Но моя программа не договорил и печать выходногоКак получить данные из psql с помощью cmd через ssh Ruby

$messageid = 'xxx' 
$table_data_base = 'yyy' 
...........  
Net::SSH.start($host, $user_name, :password => $pass_word) do |ssh| 
    ssh.exec!("PGPASSWORD='pass' psql -d data_base_name -U user_name") 
    data_mail = ssh.exec!("SELECT * FROM #{$table_data_base} WHERE messageid=#{$messageid};") 
end 
puts data_mail 
+0

Почему бы не использовать драйвер базы данных вместо этого? Ruby имеет «pg» https://deveiate.org/code/pg/ Он должен делать все, что вам нужно. – kcdragon

+0

У меня есть «pg», чтобы сделать этот успех, но мой учитель не хочет использовать «pg» и говорит, что использует только cmd через ssh –

ответ

0

Я просто найти ответ на мой вопрос: это похоже с помощью CMD SSH, чтобы получить данные:

cmd1 = "PGPASSWORD='pass' psql -d data_base_name -U user_name" 
cmd2 = "\\\"SELECT * FROM #{$table_data_base} WHERE messageid=#{$messageid};\\\"" 
Net::SSH.start($host, $user_name, :password => $pass_word) do |ssh| 
    data_mail = ssh.exec!("#{cmd1} -C#{cmd2}") 
end 

или мы используем простой Cmd SSH для подключения и получения данных

data_mail = %x[ssh #{cmd1} -C#{cmd2}]