الوصول إلى قاعدة البيانات

I am trying to access my database via a GUI (Psequel).

I forwarded the port setting from my container as such:

app.yml:

expose:
  <standard definitions>
  - "15432:5432" # PostgreSQL

Also changed my password as such:

./launcher enter app
su - postgres
psql
ALTER ROLE postgres WITH PASSWORD '<your password>';

And I am unable to access the database. Any suggestions?
إعجاب واحد (1)

If you only need a static snap shot of the database then from https://<site>/admin/backups download a backup. It should be a *.tar.gz file and when uncompressed will be a *.sql file. Create a PostgreSQL database on another machine, which could even be your laptop, and then import the *.sql file.

Now you should be able to access the data all you want with any means that can connect to a PostgreSQL database.

I use the above but access the Discourse database in PostgreSQL via ODBC.

HTH

إعجابَين (2)

ok good idea.
Actually I figured it out. It runs on port 5432 also in the container.
it should read:
expose:

  • “5432:5432” # PostgreSQL

thanks

6 إعجابات

مرحباً بالجميع،

أنا قادر على الوصول إلى قاعدة بيانات postgres الخاصة بي عبر pgadmin باستخدام الخطوات التالية:

  • قم بإزالة كود منفذ الكشف من ملف app.yml الخاص بك وأعد بناء التطبيق.
  • انتقل إلى بوابة إدارة الخادم الخاصة بك (مثل Digital Ocean، AWS، إلخ). قم بإنشاء قاعدة جدار ناري تفتح المنفذ 5432.
  • باستخدام علامة تبويب SSH في pgadmin: قم بتسجيل الدخول إلى الخادم الخاص بك باستخدام عنوان الخادم وبيانات الاعتماد.

أخبرني إذا كان هذا يعمل معك.

مع خالص التقدير،
كيمبرلي

@EricGT لم أفكر في ذلك قط! شكرا لك!! :slight_smile:

إعجاب واحد (1)

أهلاً!

أردت التحقق معك مرة أخرى من فضلك. عندما أقوم بتصدير ملف dump.sql إلى قاعدة بيانات postgresql، تنتهي بي الحال بجداول فارغة. ليس من الواضح لماذا. إليك الخطوات التي أتبعها بعد تنزيل ملف النسخ الاحتياطي:

  1. افتح pgAdmin
  2. أنشئ قاعدة بيانات جديدة
  3. افتح أداة الاستعلام
  4. استخدم ‘فتح’ في أداة الاستعلام وحدد ملف dump.sql
  5. نفّذ نص النسخ الاحتياطي

يقول إن كل شيء كان ناجحًا ولكن عندما أقوم بـ “عرض البيانات” في الجداول، تكون فارغة.

بالإضافة إلى ذلك، من المحتمل أن تكون كيفية إدارة المثيل هي السبب، ولكن يبدو أن جدول المستخدمين غير مدرج أيضًا، ولكني بحاجة إلى هذا الجدول لمعرفة من فعل ماذا.

هل فاتني أي شيء هنا؟ شكراً!

ما هو حجم الملف dump.sql؟ يجب أن يكون كبيرًا (بضعة ميغابايت على الأقل). هل يمكنك إلقاء نظرة داخل الملف؟ على سبيل المثال:

$ zgrep -i "CREATE TABLE public.users" dump.sql.gz
# يجب أن يكون الناتج
> CREATE TABLE public.users (

إذا لم ترَ هذا، فإن التفريغ يبدو خاطئًا.

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

إعجاب واحد (1)

شكراً جزيلاً! :slight_smile:

6.34 جيجابايت!

The image shows a line of SQL code on a terminal, attempting to use a file named "dump.sql" to express a CREATE TABLE statement. (Captioned by AI)

لتنزيل النسخة الاحتياطية، اتبعت الخطوات التي اقترحها @EricGT أعلاه:

بعد ذلك اتبعت هذه الخطوات:

ثم عندما أريد عرض البيانات، يظهر:

لقد أعدت هذا للتو للتحقق.

  1. باستخدام صفحة المسؤول https://<site>/admin/backup، طلبت تنزيلًا واتبعت الخطوات، كانت هناك عدة خطوات تضمنت التحقق عبر البريد الإلكتروني وتنزيل ملف.
  2. الملف الذي تم تنزيله كان ملف gz على سبيل المثال abc-2025-01-23-095947-v20250122131007.sql.gz. على نظام ويندوز، قمت بفك ضغط الملف باستخدام 7-zip والذي أنشأ مجلدًا بنفس الاسم مع إزالة .gz من النهاية.
C:\Users\Groot\Downloads>dir *.sql.gz
23/01/2025  05:04 صباحًا       407,213,170 abc-2025-01-23-095947-v20250122131007.sql.gz

C:\Users\Groot\Downloads>dir *.sql

23/01/2025  05:04 صباحًا    <DIR>          abc-2025-01-23-095947-v20250122131007.sql
  1. باستخدام موجه أوامر ويندوز مفتوحًا على المجلد الذي يحتوي على ملف sql للتحقق من وجود ملف sql
C:\Users\Groot\Downloads\abc-2025-01-23-095947-v20250122131007.sql>dir

23/01/2025  05:04 صباحًا     1,572,346,154 abc-2025-01-23-095947-v20250122131007.sql
               1 File(s)  1,572,346,154 bytes
  1. باستخدام نفس موجه أوامر ويندوز المستخدم لكتابة الأمر لسرد بداية ملف sql.

type <file> /a | more

C:\Users\Groot\Downloads\abc-2025-01-23-095947-v20250122131007.sql>type "abc-2025-01-23-095947-v20250122131007.sql" /a | more

abc-2025-01-23-095947-v20250122131007.sql


--
-- PostgreSQL database dump
--

-- Dumped from database version 15.8 (Debian 15.8-1.pgdg110+1)
-- Dumped by pg_dump version 15.10 (Debian 15.10-1.pgdg120+1)

-- Started on 2025-01-23 09:59:47 UTC

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';

نأمل أن يوصلك هذا إلى النقطة التي يمكنك فيها استخدام ملف SQL مع PGAdmin لاستيراد البيانات.


ملاحظة:
عندما قمت بنشر حول هذا الأمر قبل حوالي 5 سنوات، كان نوع ملف التنزيل هو tar.gz، وهو الآن sql.gz. الفرق الوحيد هو أنه الآن يلزم خطوة فك ضغط أقل.

إعجابَين (2)

مرحباً @EricGT

شكراً جزيلاً على مساعدتك! لقد اتبعت نفس الخطوات (مع خطوة إضافية بما أن ملفي لا يزال يحتوي على tar.gz). لقد وصلت إلى نفس النتيجة مع ملف sql:

--
-- PostgreSQL database dump
--
.........
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';

ومع ذلك، فإن المشكلة هي أنه عندما أستخدم PgAdmin للحصول على البيانات، تكون جميع الجداول فارغة ويفتقد جدول المستخدمين.

عذرًا، لا يمكنني المساعدة بخصوص PgAdmin. أنا لا أستخدم PgAdmin وسيتعين علي تثبيته للتجربة. تثبيت PgAdmin ليس خطوة أهتم بها.

في المرة الوحيدة التي وصلت فيها إلى قاعدة بيانات Discourse مُصدّرة، كان ذلك لتثبيت PostgreSQL و odbc-postgresql واستخدام iusql كما هو مذكور هنا.

إعجاب واحد (1)

شكراً جزيلاً على كل مساعدتكم! أقدر ذلك حقًا. اتضح أنني كنت أحاول استخدام أحدث إصدار من postgresql بينما كان dump.sql من إصدار سابق. اكتشفت ذلك أثناء محاولة اتباع الدليل الذي استخدمته. شكرًا لك!

إعجاب واحد (1)