2011-09-30 7 views
6

Ben $ PWD Senaryomun (~/sql/) dizinindeki aynı ise bu ince çalışmalar verilebilirGeçerli yürütme komut dosyasına göre dosyalar psql'ye nasıl eklenir? Çünkü eğer

 
\i components/helper-functions.sql 

gibi çizgileri olan bir PostgreSQL komut dosyası (diyelim ki, ~/sql/ içinde MAIN.sql) var, ama değil, dahil edilen dosyayı MAIN.sql'a göre yerine $ PWD'ye göre arar.

~/'dan komut dosyasını çağırırsam, 'u arar ve ~/sql/components/helper-functions.sql için değil.

Ben yeni \ir direktif tam olarak bu sorun için 9.2'de dahil olacak düşünüyorum, ama bir psql'in değişken olarak dizin adını Pass ve mutlak yolunu birleştirmek için kullanan

+0

PostgreSQL değil, psql (istemci) hakkında konuşuyorsunuz değil mi? –

+0

Yup, doğru –

cevap

13

8.3 koşuyorum Pek hoş değil, ama \ir sonuçta ekleniyor yüzden örneğin dosyaları,

$ cat ./tmp/foo.sql 
\echo 'This is foo.' 
\set abs_bar_sql :DIR '/bar.sql' 
\i :abs_bar_sql 

$ cat ./tmp/bar.sql 
\echo 'This is bar.' 

$ psql -f ./tmp/foo.sql -v DIR=$PWD/tmp 
This is foo. 
This is bar. 

dahil.

+0

Yaptığım işte böyle bitti, 20+ bileşen dahil edildiğinde kesinlikle hoş değil: / –

İlgili konular