Maks00088
@Maks00088
Обучаюсь Java/JavaEE /Php/Js

Как настроить строку соединения к базе данных?

В моём случае ..
Есть имя для базы данных внутри имени schema . Использую postgres !
По дефолту сушествует schema 'public' там создаются таблици при запуски cli-config.php .
Не могу найти как настроить строку под нужную мне схему а не дефолтную 'public' ..

db-config.php:

<?php

return [
        "dbname"=>"dbname",        
        "user"=>"postgres",
        "password"=>"******",
        "host"=>"localhost",
        "driver"=>"pdo_pgsql"
];


cli-config.php:

use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Tools\Console\ConsoleRunner;


$dbParams = include 'db-config.php';

// Creating database schema according to entities
// Docs reference below
// https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/tools.html
// https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/configuration.html

$config = Setup::createAnnotationMetadataConfiguration(array("../../entities"),true);
$entityManager = EntityManager::create($dbParams, $config);

return ConsoleRunner::createHelperSet($entityManager);
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 2
irishmann
@irishmann
Научись пользоваться дебаггером
Можно отредактировать пользователя postgres так, чтобы он по-умолчанию работал в нужной схеме:
alter user имя_пользователя set search_path = схема
Ответ написан
Melkij
@Melkij
PostgreSQL DBA
Схемы - дополнительный уровень упорядочивания сущностей.
Варианты на выбор: указывать схему в именах объектов в запросах (обычно) либо менять search_path на необходимый.

Именно поэтому имя схемы - это атрибут в аннотации самой таблицы, а не строки подключения.
https://www.doctrine-project.org/projects/doctrine...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы