Как использовать базу данных SQLite для тестирования, игнорируя название схемы, необходимое для производстваPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как использовать базу данных SQLite для тестирования, игнорируя название схемы, необходимое для производства

Сообщение Anonymous »

Я использую Symfony Framework 6.4, и до сих пор у меня были в использовании ORM 2.19 и DBAL 3.9. Проблема, которую я не могу решить, из -за некоторых разрывов BC, перечисленных здесь для ORM и здесь для DBAL в отношении удаления эмуляции схемы sqlite .
Ситуация:

[*] Производство db (oracle) не находится под моим контролем и имеет все таблицы в схеме/пространстве имен, давайте назовут это my_stuff .
[*] тестирование/dev db - это sqlite, который не поддерживает пространства имен схемы. )] .
[*] В Config/Packages/Dectrine.yaml У меня подключение к SQLite, настроенное для средств Test и dev .
[*] С dbal4/orm3 в тестовых и вставленных светильниках, например, попробуйте вставить в my_stuff.items_view , которые сняты. Со старыми версиями была эмуляция схемы, которая преобразовала имя таблицы в my_stuff__items_view и работал нормально. Схема поддерживает себя, но не может понять, как это сделать. В документах ORM 3 есть пример того, как изменить имена таблиц с помощью слушателя, но он такой же, как в ORM 2, и не работает из -за удаленных функциональности (см. Разрывы BC). < /P>
< H2> Что я попробовал /Идеи: < /h2>

События EventListeners для PostEgenerateSchema < /code> и нагрузки code> Полем К сожалению, я не смог найти способ фактически изменить эту информацию, чтобы отбросить имя схемы или объединить в имя таблицы.
[*] имела идею сделать свою собственную Подкласс orm \ table атрибут, но он помечен как Final .
Попытался установить схему в #[orm \ table (Schema: ' My_stuff ', name:' items_view ')] только в определенной среде, но все значения должны быть постоянными, поэтому в атрибуте не допускается логика. /code>, как указано в Docs для DectrineBundle, чтобы добавить логику, но я должен настроить всю сущность через PHP, не имея возможности использовать атрибуты, верно? < /li>
Было бы неплохо добавить » Имя схемы по умолчанию «на основе соединения, чтобы я мог изменить ее для каждой среды, но это невозможно. < /li>
< /ol>
нет. 1 кажется наиболее перспективным подходом.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-produc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»