Появилась необходимость в тестах получать из базы поле profileId, пакеты наши проходят сборку прогоняя тесты на всех версиях баз и php. Так вот чтобы получить profileId в PostgreSQL надо передавать это поле в двойных кавычках, чтобы буква I была в верхнем регистре, а вот MySQL 5.6 эти кавычки не понимает и метод
$i->grabFromDatabase($authTable, '"profileId"', ['login' => $login]);
возвращает мне ‘profileId’ вместо значения. Может кто сталкивался с такой проблемой и как-то её решил? Странно конечно что сам codeception когда пытается что-то получить из PostgreSQL не берёт имена полей в двойные кавычки. Или я не нашёл информацию как это сделать.
А двойные кавычки вы используете потому как в этой же таблице у вас есть еще одно поле с таким же названием profileid только буква i там в нижнем регистре?
Нет, двойные кавычки используются в запросах к PostgreSQL когда имена полей записаны в кэмелкейсе например. Без двойных кавычек postgresql воспринимает переданное имя полностью в нижнем регистре.
Все так, но если у вас поле в дб PostgreSQL уникально (а так скорей всего и есть) то какая разница в каком регистре обращаются тесты к бд, PostgreSQL понимает если к ней обратиться без 2х кавычек что за поле вам надо.
Не понимает, говорит что нет такого поля