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

PostgreSql , ekstrak objek skema DDL untuk memisahkan file SQL

Jika Anda berada di mesin klien, Anda dapat memasukkan ini ke dalam skrip SQL (mis. export_plpgsql.sql):

\pset tuples_only on
\pset footer off
\set QUIET on
\pset format unaligned
\set QUIET off

SELECT '\echo ''* Export '||(CASE proKind WHEN 'f' THEN 'Function' ELSE 'Procedure' END)||' : '||proName||''''
       ||chr(10)||'\copy (SELECT pg_get_functiondef('||p.oid||')) TO '''||:'export_path'||'/'||upper(proName)
       ||(CASE proKind WHEN 'f' THEN '.fct' ELSE '.prc' END)||''' WITH CSV;' as export_routine
FROM pg_proc p
WHERE proNamespace = (SELECT oid FROM pg_namespace WHERE nspName = lower(:'schema_name'))
ORDER BY proName;

dan menyebutnya menggunakan 2 argumen :schema_name dan export_path, misalnya :

psql -U my_ -d my_db -v schema_name=my_schema -v export_path=C:/temp/export_PG -f export_plpgsql.sql > C:\temp\export_plpgsql.gen.sql

Ini akan menghasilkan skrip yang berisi semua perintah ekspor untuk rutinitas plpgsql Anda, mis.

\copy (SELECT pg_get_functiondef(51296)) TO 'C:/temp/export_PG/my_procedure.prc' WITH CSV;

Langkah terakhir :jalankan script yang dihasilkan

psql -U my_ -d my_db -f C:\temp\export_plpgsql.gen.sql

Ini akan menghasilkan file .prc untuk setiap prosedur dan file .fct untuk setiap fungsi.NB:Anda mungkin harus memperbaiki skrip karena Anda dapat memiliki jenis fungsi lain (proKind) dalam tampilan pg_proc.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Status SQL Postgres:22P02

  2. PostgreSQL dengan masalah kepemilikan buruh pelabuhan

  3. Apa urutan catatan dalam tabel dengan kunci primer komposit?

  4. Bagaimana cara membuat tabel pohon tanpa hubungan siklik?

  5. Permintaan SQL untuk menemukan catatan dengan ID tidak di tabel lain