16.3. الدرس: الاستيراد والتصدير

بالطبع، لن تكون قاعدة البيانات ذات فائدة كبيرة إذا لم تتوفر طريقة سهلة لنقل البيانات إليها ومنها. ولحسن الحظ، هناك عدد من الأدوات التي تتيح لك نقل البيانات بسهولة إلى PostgreSQL ومنها.

16.3.1. shp2pgsql

shp2pgsql أداة سطر أوامر لاستيراد ملفات ESRI Shapefile إلى قاعدة البيانات. في Unix، يمكنك استخدام الأمر التالي لاستيراد جدول PostgreSQL جديد:

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> | \
  psql -d <databasename> -h <hostname> -U <username>

في Windows، عليك تنفيذ عملية الاستيراد على خطوتين:

shp2pgsql -s <SRID> -c -D -I <path to shapefile> <schema>.<table> > import.sql
psql psql -d <databasename> -h <hostname> -U <username> -f import.sql

قد تواجه هذا الخطأ:

ERROR:  operator class "gist_geometry_ops" does not exist for access method
"gist"

هذه مشكلة معروفة تتعلق بإنشاء فهرس مكاني في الموضع نفسه للبيانات التي تستوردها. لتجنب الخطأ، استبعد المعامل -I. وهذا يعني أنه لن يُنشأ فهرس مكاني مباشرة، وستحتاج إلى إنشائه في قاعدة البيانات بعد استيراد البيانات. (سيُتناول إنشاء الفهرس المكاني في الدرس التالي.)

16.3.2. pgsql2shp

pgsql2shp أداة سطر أوامر لتصدير جداول PostgreSQL أو طرق العرض (Views) أو استعلامات SQL من نوع select. لفعل ذلك في Unix:

pgsql2shp -f <path to new shapefile> -g <geometry column name> \
  -h <hostname> -U <username> <databasename> <table | view>

لتصدير البيانات باستخدام استعلام:

pgsql2shp -f <path to new shapefile> -g <geometry column name> \
  -h <hostname> -U <username> "<query>"

16.3.3. ogr2ogr

ogr2ogr أداة قوية جدًا لتحويل البيانات من PostgreSQL وإليها إلى العديد من صيغ البيانات. وهي جزء من مكتبة GDAL ويجب تثبيتها بشكل منفصل. لتصدير جدول من PostgreSQL إلى GML، يمكنك استخدام هذا الأمر:

ogr2ogr -f GML export.gml PG:'dbname=<databasename> user=<username>
        host=<hostname>' <Name of PostgreSQL-Table>

16.3.4. DB Manager

ربما لاحظت خيارًا آخر في القائمة Database باسم DB Manager. وهي أداة توفر واجهة موحدة للتعامل مع قواعد البيانات المكانية بما فيها PostgreSQL. كما تتيح لك الاستيراد والتصدير من قواعد البيانات إلى صيغ أخرى. وبما أن الوحدة التالية مخصصة إلى حد كبير لاستخدام هذه الأداة، فسنكتفي بالإشارة إليها هنا بإيجاز.

16.3.5. الخلاصة

يمكن استيراد البيانات إلى قاعدة البيانات وتصديرها منها بطرق كثيرة ومتنوعة. وعلى الأخص عند استخدام مصادر بيانات متباينة، ستستخدم على الأرجح هذه الوظائف (أو ما يشبهها) بشكل منتظم.

16.3.6. ما التالي؟

سننظر فيما يلي في كيفية الاستعلام عن البيانات التي أنشأناها سابقًا.