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

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]