doctrine如何从yaml生成db表

时间:2011-03-31 07:47:19

标签: zend-framework doctrine

在doctrine中是否有任何可以从YAML创建db表的命令。我可以看到我们可以使用./doctrine generate-yaml-db

从DB创建YAML

但是我们怎样才能实现这个的反向特征呢。从yaml到db。

有没有这样的命令 ./doctrine generate-db-yaml

2 个答案:

答案 0 :(得分:2)

从yaml文件生成数据库必须分两步完成。

  1. 使用Doctrine_Core :: generateModelsFromYaml()从yaml文件生成模型。

  2. 使用Doctrine_Core :: createTablesFromModels()从模型生成数据库。

  3. 我建议编写一个命令行脚本来按顺序调用这两个函数,并自动执行一些其他必要的步骤。这是我用来重新生成数据库的脚本的核心。

    echo 'Deleting old models...';
    deleteAllFilesInDirectory(APPPATH . '/models/generated');
    echo "done.\n";
    
    echo 'Generating models...';
    Doctrine_Core::generateModelsFromYaml('schema.yml', APPPATH . '/models');
    echo "done.\n";
    
    echo 'Recreating database tables...';
    Doctrine_Core::dropDatabases();
    Doctrine_Core::createDatabases();
    Doctrine_Core::createTablesFromModels(APPPATH . '/models');
    echo "done.\n";
    
    echo 'Loading data...';
    Doctrine_Core::loadData('autoload.yml', 'true');
    echo "done.\n";
    

答案 1 :(得分:0)

这是不可能的,因为我已经找到了困难的方法。您可以从yaml文件生成模型,然后从模型中创建表。我的学说完美地完成了第一个,但是表格的创建并没有发生。我仍在尝试找到一个从yaml文件创建表的解决方案。