it-swarm.asia

مصدر عدة ملفات في آن واحد مع psql

أريد تنفيذ العديد من سكربتات sql بالتسلسل باستخدام psql كمعاملة واحدة لإعداد مخطط قاعدة البيانات الخاصة بي. ما هي أفضل طريقة للقيام بذلك؟ في الماضي ، كنت أعلم أن لدي برنامجًا نصيًا رئيسيًا قمت بتشغيله psql ضده والذي تضمن الملفات الأخرى ولكني لا أتذكر بنية هذا البرنامج النصي.

27
xenoterracide

يمكن أن يبدو نصك كما يلي:

BEGIN;
\i file1.sql
\i file2.sql
COMMIT;

أو يمكنك فعل شيء كهذا:

cat file1.sql file2.sql | psql -1 -f -
32
Peter Eisentraut

فعلت ذلك باستخدام البحث في unix/linux مع المسار إلى ملف sql الماضي مع معلمة rep_sql مع تعليمات "قراءة":

find -P ${rep_sql} -type f -name *.sql -execdir psql -d "mabase" -f {} +

تقول: عدم العثور على ملفات الروابط التالية مهما كان اسمها مع الامتداد كـ ".sql" وتنفيذها في دليل ملف psql الذي يعمل مع mabase وتنفيذ الملف الموجود.

0
Deun