• Почему не могу задать пароль пользователя postgres?

    @glavvra4
    Senior Backend Developer (PHP)
    Символ "!", помещенный в двойные кавычки, порождает сообщение об ошибке, если команда вводится с командной строки. Объясняется тем, что этот символ интерпретируется bash, как попытка обращения к истории команд. Можно обойти эту особенность, используя что-то вроде:

    sudo -u postgres psql -U postgres -c 'alter user postgres with password'\''A******e!qA'\'';'


    Выглядит устрашающе, но для понимания можно разделить SQL-запрос на следующие части:
    1) Первая часть 'alter user postgres with password' - экранируется одиночными кавычками
    2) Первая кавычка \' - экранируется слешем
    3) Пароль 'A******e!qA' - экранируется одиночными кавычками. Восклицательный знак больше не интерпретируется, как обращение к истории запросов
    4) Вторая кавычка \' - также, как и первая экранируется слешем
    5) Оставшаяся часть, в виде ';' - экранируется кавычками

    Вот такое вот экранирование экранирования)
    Ответ написан
  • Из-за чего происходит ошибка при попытке создать миграцию в Symfony?

    @glavvra4
    Senior Backend Developer (PHP)
    Такое может произойти, если вы некорректно указали переменные среды. Зайдите в .env файл, отыщите там DATABASE_URL, и убедитесь, что корректно установлен параметр serverVersion. То есть, например, чтоб не было случая, что у вас MySQL 8, а "serverVersion=10.11.2-MariaDB"
    Ответ написан
    Комментировать