推进2,mysql - 没有反向错误,没有创建schema.xml

时间:2014-08-15 12:08:48

标签: php mysql propel

昨天我在我的网站项目中安装了带有作曲家的propel2(〜@ 2.0@dev),并在下午试图让它对我现有的mysql数据库进行逆向工程。

首先,我尝试按照以下说明进行操作:

http://propelorm.org/documentation/cookbook/working-with-existing-databases.html

但仍然遇到“无法连接”错误:

./propel reverse "mysql:host={mysql domain};dbname={my db name};user={username};password={password}" --verbose
There was an error building XML from metadata: Unable to open connection
Schema reverse engineering failed.

所以我回到了文档,并认为我可能需要一个propel.php配置文件。所以我从示例中复制了一下,填写了我的db的相应信息,并提出了这个:

<?php

return [
    'propel' => [
        'database' => [
            'connections' => [
                'mpginfo' => [
                    'adapter'    => 'mysql',
                    'classname'  => 'Propel\Runtime\Connection\ConnectionWrapper',
                    'dsn'        => 'mysql:host={mysql domain};dbname={my db name}',
                    'user'       => '{username}',
                    'password'   => '{password}',
                    'attributes' => []
                ]
            ]
        ],
        'runtime' => [
            'defaultConnection' => 'mpginfo',
            'connections' => ['mpginfo']
        ],
        'reverse' => [
            'connection' => 'mpginfo'
        ],
        'generator' => [
            'defaultConnection' => 'mpginfo',
            'connections' => ['mpginfo']
        ]
    ]          
];

一旦我创建了这个propel.php文件并重新运行了反向命令,我就不再收到“无法打开连接”错误,但我也看不到任何输出!我没有看到正在创建一个schema.xml文件,并且我没有看到任何指示该命令甚至已运行的内容。

为了仔细检查,我阅读How to enable PDO_MYSQL for CLI?并验证我的服务器上安装并启用了PDO的mysql驱动程序:

$ php --ri pdo

PDO

PDO support => enabled
PDO drivers => sqlite, mysql

任何想法我的设置可能出错?我需要创建其他配置文件吗?如何获得一些输出以进行进一步调试?

2 个答案:

答案 0 :(得分:1)

我保留了我的配置文件,像Vince建议的那样运行了--verbose,并注意到我的schema.xml已被删除generated-reversed-database/schema.xml

答案 1 :(得分:0)

摆脱配置文件,然后使用单引号。

$ propel reverse --verbose 'mysql:host=domain;dbname=mydbname;user=username;password=password'

我遇到了完全相同的问题,这解决了它。