Cakephp postgres - база данных по умолчанию не распознается при выпечке

У меня проблема с выпечкой в ​​командной строке с консолью, только в базе данных Postgres.

Я использую:

  • Windows
  • Cakephp 2.3
  • PostgreSQL 8.4.8) Моя база данных находится на внешнем сервере (Unix), а остальные компоненты на моем локальном компьютере.

Для моего приложения проверка CakePhp кажется хорошей:

  • Ваша версия PHP 5.2.8 или выше.
  • Ваш каталог tmp доступен для записи.
  • FileEngine используется для основного кэширования. Для изменения конфигурации отредактируйте APP/Config/core.php
  • Ваш файл конфигурации базы данных присутствует.
  • Cake может подключиться к базе данных.

Когда я кодирую MVC вручную, все в порядке, приложение получает данные.

Когда я использую командную строку с consol, у меня появляется это сообщение:

    D:\wamp\www\mobilite\app>cake bake
    Welcome to CakePHP v2.3.5 Console
    ---------------------------------------------------------------
    App : app
    Path: D:\wamp\www\mobilite\app\
    ---------------------------------------------------------------
    Interactive Bake Shell
    ---------------------------------------------------------------
    [D]atabase Configuration
    [M]odel
    [V]iew
    [C]ontroller
    [P]roject
    [F]ixture
    [T]est case
    [Q]uit
    What would you like to Bake? (D/M/V/C/P/F/T/Q)
    > M
    ---------------------------------------------------------------
    Bake Model
    Path: D:\wamp\www\mobilite\app\Model\
    ---------------------------------------------------------------
    Use Database Config: (default/components)
    [default] >
    Error: Database connection "Postgres" is missing, or could not be created.

Спасибо за вашу помощь,

Саймон.

3 ответа

Саймон, у меня была именно эта проблема. В конечном счете, я понял, что мой веб-сервер просматривал файл php.ini в моей установке MAMP, в котором DID установлены драйверы postgres PDO, но мой терминал использовал мою собственную установку php, чего не было. Вот почему на странице проверки CakePHP сказано, что с подключением все в порядке, но Bake Shell не будет работать. Вторым ответом на этот вопрос было мое спасение после нескольких часов ужасного разочарования. Кстати, все это произошло после обновления до моей ОС. Удачи!

Встретил ту же проблему на windows 7, iis7.5, PostgreSql 9.4, cakephp 2.6.3 Я установил php 5.3 в свои программные файлы x86/php/php5.3, поэтому я подумал, что он используется везде в моей системе... но только мой IIS использует его, как я обнаружил.

введите php -ini в консоли, и он покажет вам текущую версию, которая используется в консоли. Моя консоль показала, что мой php.ini из C:\Program Files (x86)\IIS Express\PHP\v5.5, только что добавленный в этот php.ini

extension=php_pgsql.dll
extension=php_pdo_pgsql.dll

и все работает

Одна из двух вещей не так:

  • Параметры подключения к вашей базе данных недействительны. Попробуйте подключиться через командную строку, чтобы убедиться, что они работают правильно.
  • У вас не включен драйвер postgres. Проверьте ваш файл php.ini.
Другие вопросы по тегам