PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

PostgreSQL PL/Python:panggil prosedur tersimpan di virtualenv

Ada cara untuk melakukannya, ternyata. Sejak versi 1.6 atau lebih, virtualenv hadir dengan skrip activate_this.py , yang dapat digunakan untuk mengatur juru bahasa yang ada untuk mengakses virtualenv tertentu.

exec(open('/Some/VirtualEnv/Directory/myvirtualenv/bin/activate_this.py').read(), 
dict(__file__='/Some/VirtualEnv/Directory/myvirtualenv/bin/activate_this.py'))

Dan sebagai fungsi plpython yang direalisasikan sepenuhnya:

CREATE OR REPLACE FUNCTION workon(venv text)
  RETURNS void AS
$BODY$
    import os
    import sys

    if sys.platform in ('win32', 'win64', 'cygwin'):
        activate_this = os.path.join(venv, 'Scripts', 'activate_this.py')
    else:
        if not os.environ.has_key('PATH'):
            import subprocess
            p=subprocess.Popen('echo -n $PATH', stdout=subprocess.PIPE, shell=True)
            (mypath,err) = p.communicate()
            os.environ['PATH'] = mypath

        activate_this = os.path.join(venv, 'bin', 'activate_this.py')

    exec(open(activate_this).read(), dict(__file__=activate_this))
$BODY$
LANGUAGE plpythonu VOLATILE

(Mungery PATH tambahan diperlukan karena secara default PATH tidak tersedia di plpython os.environ -activate_this.py memiliki perbaikan sudah masuk yang akan bergulir dengan rilis poin berikutnya (yang seharusnya 1.11.7 atau 1.12)

( sebagian besar diambil dari https://gist.github.com/dmckeone/69334e2d8b27f586414a )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jalankan pemicu yang ditangguhkan hanya sekali per baris di PostgreSQL

  2. KESALAHAN:tidak dapat membuat file stat XX.csv:Kesalahan tidak diketahui

  3. Perbarui nilai kolom PostgreSQL

  4. Ikhtisar Alat Penjadwalan Pekerjaan untuk PostgreSQL

  5. Apakah nama kolom PostgreSQL peka huruf besar/kecil?