من داکر و داکر کامپوز رو ساختم. SQL alchemy درست کار میکنه و auto revision رو میسازه و میتونم تو دایرکتوری ببینم.
ولی خود دیتابیس تو فضای داکر ساخته میشه و با pg admin نمیتونم ببینمش.
این موضوع رو چطوری حل کنم؟
سلام.
دوتا نکته رو باید رعایت کنید.
نمیدونم فایل docker_compose.yml رو درست کانفیگ کردین یا نه.
مورد اول اینکه اگر توش فیلد volumes تعریف نشده، باید اضافه کنین و آدرسی که براش تعریف میکنین، دایرکتوری پروژهی شما رو روی مسیر پیشفرض دادههای Postgres توی کانتینر مپ میکنه.
نکته دوم تعریف پورت هست. خوب معمولا پورت postgres مقدار 5432 هست.
یه صورت فیلد ports باید تعریف شده باشه و مقدارشو این قرار بدین:
5432:5432
سمت چپی پورت هاست و سمت راستی پورت کانتینر.
این دو مورد اوکی باشه، قاعدتا باید بتونین وقتی داکر بالا اومد، توی pgadmin یه کانکشن بهش بزنین.
اگر دیدین ارور میده، باز بگین ارورش چی هست تا بتونیم کمک کنیم.
باز یه مشکل هست.
آدرسی که تعریف کردید بازم داخل کانتینر هست.
تغییرش بدین به یه همچین چیزی:
- ./postgres_data:/var/lib/postgresql/data
که بتونین داخل پروژه فایلهایتون رو ببینین.
/postgres_data تو volume که بهم دادی ، فقط اسمش فرق کرده
این اسم ها مهمه یا متغیره؟
و راجع به db-data هوش تو ریشه ی فایل کامپوز هست تو یه جا دیتا ها رو ذخیره میکنه. اگه postgres_data/. رو بزارم همون کارو میکنه؟
اسم مهم نیست. میتونی هر چیز بزاری.
موضوع اون db-data: هست که میاد دیتا رو میریزه داخل خود کانتینر که بهش دسترسی نداری.
یعنی نمیتونی بری توی اون فضا فایلی رو ببینی.
اما اون آدرسی که دادم اگه بزنی، قاعدتا فایل ها برات قابل دسترسی میشن.
اگر نشه یعنی کلا کار نمیکنه و باید مشکل رو ریشه ای تر دنبال کرد.
شما این دوتا دستور رو پشت سر هم اجرا کنین:
docker-compose down
docker-compose up -d
با اینکار اول کانتینر شما استاپ میشه و بعد دوباره ران میشه.
بعدش باید پورتها رو چک کنید قاعدتا.
این دستور رو بزنین ببینین نتیجه چی میده:
docker ps
انتظار میره پورتهای 5432 رو نشون بده بهتون.