4

在 MySQL 中创建“电机”数据库后,我在 Symfony 中使用以下命令配置了数据库:

$ php symfony configure:database "mysql:host=localhost;dbname=motor" root <mypassword>

appname/config/doctrine/我有一个schema.yml文件。

在这个文件中,我定义了下表:

Car:
  actAs: { Timestampable: ~ }
  columns: 
    brand: { type: string(255), notnull: true }
    model: { type: string(255), notnull: true }
    version: { type: string(255), notnull: true }
    url: { type: string(255), notnull: true }
    year: { type: string(4), notnull: true }
    info: { type: string(10000), notnull: true }
    updated_at: { type: timestamp, notnull: true }
    created_at: { type: timestamp, notnull: true } 

然后我执行了命令:

$ php symfony doctrine:build --model

这给了我以下输出:

>> doctrine  generating model classes
>> file+     /tmp/doctrine_schema_57936.yml
>> tokens    /home/username/webapps/www/appname/lib/model/doctrine/CarTable.class.php
>> tokens    /home/username/webapps/www/appname/lib/model/doctrine/Car.class.php
>> tokens    /home/username/webapps/www/appname/lib/model/doctrine/base/BaseCar.class.php
>> autoload  Resetting application autoloaders
>> file-     /home/username/webapps/www/appname/cache/frontend/dev/config/config_autoload.yml.php

之后,我继续使用以下命令生成 sql:

$ php symfony doctrine:build --sql

输出是:

>> doctrine  generating model classes
>> file+     /tmp/doctrine_schema_89541.yml
>> tokens    /home/username/webapps/www/motor/lib/model/doctrine/base/BaseCar.class.php
>> autoload  Resetting application autoloaders
>> file-     /home/username/webapps/www/motor/cache/frontend/dev/config/config_autoload.yml.php
>> doctrine  generating sql for models
>> doctrine  Generated SQL successfully for models

但是在生成appname/data/sql/的文件下schema.sql是空的。

所以这个命令$ php symfony doctrine:insert-sql,没有在我的数据库中生成任何表。但是它给出了成功的消息输出:

>> doctrine  creating tables
>> doctrine  created tables successfully

命令$ php symfony doctrine:build --all,也没有用。

知道我做错了什么吗?

4

1 回答 1

1

我用来做这件事的方法似乎没有任何问题。

问题在于我使用的 Symfony 版本,由于某种原因无法正常工作。

为了修复它,我下载了最新的 Symfony 1.4.18 版本并再次运行代码,这次它运行正常。

于 2012-09-23T17:05:45.443 回答