推进模型:构建没有给出任何响应


Propel model:build gives no response

我正在运行Mac OSX Mavericks,我正在尝试让Propel运行。我做了作曲家的安装。由于某种原因,当我运行 model:build 命令时它没有给出响应。

当我没有推进器时.php在文件夹中:

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

[Symfony''Component''Config''Definition''Exception''InvalidConfigurationException]
必须配置路径"propel"处的子节点"数据库"。

所以后来我做了一个推进.php文件,然后我再也没有得到回应了:

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

MacBook-Pro-van-Casper-4:test casper$

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

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

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

推进具有 cli 的详细选项。非常有帮助

推进.php

推进.php文件本质上是数据库配置文件。它不提供推进数据库结构信息,只提供连接详细信息。

您需要做的是将现有数据库反向工程到架构中。然后梳理你的模式以寻找善良。然后构建模型。

该网站有很棒的文档和您缺少的其余内容(如果您有现有数据库或有新数据库

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 个连接。您可以根据需要创建任意数量。现在,如果您有一个架构文件,请将其与 propell.php 文件放在同一级别。我将两者放在项目根目录中,并与vendor目录处于同一级别。在同一级别上创建一个model目录。然后运行以下命令:

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

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