Propel ORM: изменение настроек подключения для diff и migrate

В настоящее время я разрабатываю небольшой проект с использованием Propel ORM (v2.00-dev) и решил, что попробую использовать Vagrant впервые.

Я настроил vagrant-сервер для разрешения внешних подключений MySQL и создал следующий файл конфигурации, чтобы мне не приходилось подключаться к серверу ssh каждый раз, когда я хочу запустить propel из командной строки

{
  "propel": {
      "paths": {
        "outputDir": "./propel/",
        "phpDir": "./propel/model/",
        "sqlDir": "./propel/sql",
        "phpConfDir": "./propel/conf"
      },
      "database": {
        "connections": {
          "project-local": {
            "adapter": "mysql",
            "dsn": "mysql:host=localhost;dbname=scotchbox",
            "user": "root",
            "password": "root",
            "attributes": []
          },
          "project-remote": {
            "adapter": "mysql",
            "dsn": "mysql:host=192.168.33.10;dbname=scotchbox",
            "user": "root",
            "password": "root",
            "attributes": []
          }
        }
      },
      "runtime": {
        "defaultConnection": "project-local",
        "connections": ["projeect-local","project-remote"]
      },
      "generator": {
        "defaultConnection": "project-remote",
        "connections": ["project-remote","project-local"]
      }
    }
  }

в паре с schema.xml лайк:

<database name="project-remote">
    <!-- lots of tables in here -->
</database>

Теперь это работает отлично. Приложение работает с использованием project-localи когда я запускаю propel из командной строки, он переключается на project-remote как и ожидалось.

Когда я пытаюсь бежать propel diff однако я получаю следующую ошибку:

[PDOException]
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)

Это говорит о том, что при запуске diff, Propel пытается использовать runtime настройки соединения, а не generator из них. Есть ли способ, которым я могу изменить это? Я проверил документацию по настройке и ничего не вижу в настройке соединения.

Я также заметил, что diff команда имеет --connection аргумент, но я не могу найти информацию об этом, и я не могу понять, как его использовать. Я пробовал:

propel diff --connection=project-remote

а также

propel diff --connection="project-remote"

Оба из которых приводят к следующей ошибке

[Symfony\Component\Config\Definition\Exception\InvalidConfigurationException]
The path "propel.database.connections..adapter" cannot contain an empty value, but got "".

Итак, есть ли у кого-нибудь идеи о том, как указать соединение для Propel Diff (и, возможно, мигрировать)?

0 ответов

Другие вопросы по тегам