Symfony Postgres与自定义架构连接不起作用

发布于 2025-02-13 06:48:19 字数 1709 浏览 2 评论 0原文

在远程数据库上使用database_name.my_schema时,它告诉我DB不存在,但是如果我仅使用数据库_NAME,则似乎可以连接,但是当我运行

运行运行php bin/console学说:迁移:迁移:迁移-NO -NO -NO -NO - 互动

在Dockerfile上它无法连接。

on/config/packages/doctrine.yaml

doctrine:
  dbal:
    dbname : 'my_db' // or dbname.myschema
    user : 'user'
    password : 'xxxxxxxx'
    host : 'xxxxxxxx'
    port: 1520
    driver : 'pdo_pgsql'
    server_version: '13'

dockerfile

FROM php:8.1-apache AS symfony_php

RUN a2enmod rewrite

RUN apt-get update \
  && apt-get install -y libpq-dev libzip-dev git libxml2-dev wget --no-install-recommends \
  && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
  && docker-php-ext-install pdo pdo_pgsql pgsql zip \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN wget https://getcomposer.org/download/2.3.5/composer.phar \
  && mv composer.phar /usr/bin/composer && chmod +x /usr/bin/composer


COPY docker/php/apache.conf /etc/apache2/sites-enabled/000-default.conf
COPY docker/php/php.ini /usr/local/etc/php/conf.d/app.ini

COPY . /var/www

WORKDIR /var/www
RUN composer install

RUN php bin/console doctrine:migrations:migrate --no-interaction

RUN mkdir ./var/cache/pfv && mkdir ./var/log/pfv && chmod -R 777 ./var/cache && chmod -R 777 ./var/lo

因此,问题是具有自定义架构的Postgres的正确设置,以及为什么显然它与DEABASE名称连接时,迁移命令失败。

抛出的编辑

错误:

[批判]运行命令时丢弃错误的错误“学说:迁移:迁移-No Itteraction”。消息:“驱动程序中发生了例外:SQLSTATE [08006] [7]超时到期了” 在exceptionConverter.php行81中:

驱动程序中发生了例外:SQLSTATE [08006] [7]超时到期

When using database_name.my_schema on a remote database it tells me that db does not exists, but if I use only the database_name it seems to connect, but when I run

RUN php bin/console doctrine:migrations:migrate --no-interaction

on Dockerfile it fails to connect.

On /config/packages/doctrine.yaml

doctrine:
  dbal:
    dbname : 'my_db' // or dbname.myschema
    user : 'user'
    password : 'xxxxxxxx'
    host : 'xxxxxxxx'
    port: 1520
    driver : 'pdo_pgsql'
    server_version: '13'

The Dockerfile

FROM php:8.1-apache AS symfony_php

RUN a2enmod rewrite

RUN apt-get update \
  && apt-get install -y libpq-dev libzip-dev git libxml2-dev wget --no-install-recommends \
  && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \
  && docker-php-ext-install pdo pdo_pgsql pgsql zip \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN wget https://getcomposer.org/download/2.3.5/composer.phar \
  && mv composer.phar /usr/bin/composer && chmod +x /usr/bin/composer


COPY docker/php/apache.conf /etc/apache2/sites-enabled/000-default.conf
COPY docker/php/php.ini /usr/local/etc/php/conf.d/app.ini

COPY . /var/www

WORKDIR /var/www
RUN composer install

RUN php bin/console doctrine:migrations:migrate --no-interaction

RUN mkdir ./var/cache/pfv && mkdir ./var/log/pfv && chmod -R 777 ./var/cache && chmod -R 777 ./var/lo

So, the questions are what is the correct setup for postgres with custom schema and why when apparently it connects with just de database name, the migration command fails.

EDIT

Error thrown:

[critical] Error thrown while running command "doctrine:migrations:migrate --no-interaction". Message: "An exception occurred in the driver: SQLSTATE[08006] [7] timeout expired"
In ExceptionConverter.php line 81:

An exception occurred in the driver: SQLSTATE[08006] [7] timeout expired

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文