পোস্টগ্রিসে একক এসকিউএল ফাইলে একাধিক এসকিএল ফাইল কল করুন


11

একক স্কেল ফাইলটিতে একাধিক এসকিএল ফাইলকে কীভাবে পোস্টগ্রিসে কল করবেন

উদাহরণস্বরূপ আমার কাছে aaa.sql, bbb.sql, ccc.sql আছে।

আমি এই 3 টি ফাইলকে এক্সএক্সএক্সএইচএলএল থেকে সম্পাদন করতে চাই।

কেউ আমাকে কীভাবে এটি করতে পরামর্শ দিতে পারে।

উত্তর:


12

আপনি যদি এই ফাইলগুলি চালনা করে থাকেন তবে আপনি নির্দেশটি psqlচান \i("ফাইল থেকে আদেশগুলি কার্যকর করুন")।

xxx.sql:

\i aaa.sql
\i bbb.sql
\i ccc.sql

আপনি যদি এগুলি অন্য কোনও প্রোগ্রামের মধ্য দিয়ে যাচ্ছেন তবে আপনাকে নিজেরাই ফাইলগুলি একত্রিত করতে হবে - আমি বিশ্বাস করি না বাহ্যিক ফাইলগুলি কার্যকর করার কোনও এসকিউএল-মানক উপায় আছে।


উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ। আমি এটি অর্জন করতে পেরেছি কিনা তা আমি পরীক্ষা করে নিশ্চিত করব এবং যাচ্ছি
— ট্রিপ

এখনও কাজ করার মতো দেখাচ্ছে না আমি নিশ্চিত কিছু জানি না। আমার কি শেষে আধা কোলন দরকার ??? -আসলে তা না !!!
— ট্রিপ

1
"কাজ না করা" এর চেয়ে আপনাকে আরও সুনির্দিষ্ট হওয়া দরকার - আমি আপনাকে আশ্বাস দিয়েছি এটি কাজ করে - পিএসএইচএল ম্যানুয়ালটি দেখুন
— voretaq7

এটা কাজ করেছে. অবশেষে :-) থ্যাঙ্কু সমস্যা ছিল - এটি ফাইলটি সনাক্ত করতে সক্ষম হয় নি এবং ও ফাইলটির জন্য সম্পর্কিত পাথ নির্দিষ্ট করে দিয়েছে এবং এর কাজটি আবারও আপনাকে ধন্যবাদ
— ট্রিপ

@ ট্রিপ ট্রিপ, তার উত্তরের জন্য ভোরেটাক ক্রেডিট দিতে ভুলবেন না!
— রিচার্ড টি

4

আপনি যা চাইছেন তা ঠিক নয়, তবে আপনার উদ্দেশ্যটি পূরণ করবে: 1) আপনার সমস্ত স্ক্রিপ্ট ফাইল একটি ফোল্ডারে রাখুন; এবং 2) আপনার ফাইলগুলি পুনরাবৃত্তি করতে এবং পিএসএইচএল চালানোর জন্য একটি ব্যাশ স্ক্রিপ্ট ব্যবহার করুন। উদাহরণ স্বরূপ:

SCRIPTS_DIR=/home/myproject/scripts
DATABASE_NAME=database_name

for file in $SCRIPTS_DIR/*.sql
    do sudo -u postgres psql $DATABASE_NAME -f $file
done

এটি আসলে কিছুটা ভাল কারণ আপনাকে নিজের ফাইলের নাম টাইপ করতে হবে না।


3

বাশ শেলের উপর আপনি এটি একটি সাধারণ দিয়েও করতে পারেন find -exec

find sql/ -name *.sql -exec psql -U user -f {} \;

যা আপনি ব্যবহার প্রয়োজন "*.sql"বদলে*.sql
— Jeel শাহ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.