推进模型:构建没有响应

时间:2014-11-24 22:08:55

标签: php propel

我正在运行Mac OSX Mavericks并且我试图让Propel运行。 我是由Composer完成安装的。 出于某种原因,当我运行model:build命令时,它没有给出响应。

当我在文件夹中没有propel.php时:

  

MacBook-Pro-van-Casper-4:测试casper $ ./vendor/bin/propel model:build

     

[Symfony的\元器件\配置\定义\异常\ InvalidConfigurationException]
    子节点"数据库"在路径"推进"必须配置。

然后我制作了一个propel.php文件,然后我再也没有得到回复:

  

MacBook-Pro-van-Casper-4:测试casper $ ./vendor/bin/propel model:build

     

MacBook-Pro-van-Casper-4:测试casper $

当propel.php文件不存在时我收到错误的事实告诉我Propel安装得很好。

我认为这是一个难以处理的情况,因为没有错误,但所有建议都值得赞赏。

2 个答案:

答案 0 :(得分:1)

除非您已截断设置步骤,否则您将错过一些设置步骤。简而言之,你的问题的答案是:"架构文件是空的"

Propel有cli的详细选项。非常有帮助

<强> Propel.php

propel.php文件基本上是数据库配置文件。它没有提供推动数据库结构信息,只提供连接细节。

您需要做的是将现有数据库反向工程为模式。然后梳理你的架构以获得善意。然后建立你的模型。

该网站有很好的文档,如果你有一个,你还有其他的遗漏 Existing Databases或者如果您有New Database

答案 1 :(得分:1)

propel.php文件需要填充连接信息。见下面的例子:

    <?php

return [
    'propel' => [
        'database' => [
            'connections' => [
                'bookstore' => [
                    'adapter'    => 'mysql',
                    'classname'  => 'Propel\Runtime\Connection\ConnectionWrapper',
                    'dsn'        => 'mysql:host=localhost:3306;dbname=bookstore',
                    'user'       => 'root',
                    'password'   => '12345678',
                    'attributes' => []
                ],
                'wordpress' => [
                    'adapter'    => 'mysql',
                    'classname'  => 'Propel\Runtime\Connection\ConnectionWrapper',
                    'dsn'        => 'mysql:host=localhost:3306;dbname=wordpress',
                    'user'       => 'root',
                    'password'   => '12345678',
                    'attributes' => []
                ]
            ]
        ],
        'runtime' => [
            'defaultConnection' => 'bookstore',
            'connections' => ['bookstore', 'wordpress']
        ],
        'generator' => [
            'defaultConnection' => 'bookstore',
            'connections' => ['bookstore','wordpress']
        ]
    ]
];

请注意,我创建了2个连接。您可以根据需要创建任意数量的内容。现在,如果您有一个模式文件,则将其放在与propel.php文件相同的级别上。我将两者放在项目根目录中,并与vendor目录处于同一级别。在同一级别创建model目录。然后运行以下命令:

~/Desktop/Propel_orm/vendor/bin/propel model:build --output-dir ~/Desktop/Propel_orm/models

您将在models目录中生成模型文件。我在桌面上创建了示例项目。相应地改变路径。