在doctrine中是否有任何可以从YAML创建db表的命令。我可以看到我们可以使用./doctrine generate-yaml-db
从DB创建YAML但是我们怎样才能实现这个的反向特征呢。从yaml到db。
有没有这样的命令 ./doctrine generate-db-yaml
答案 0 :(得分:2)
从yaml文件生成数据库必须分两步完成。
使用Doctrine_Core :: generateModelsFromYaml()从yaml文件生成模型。
使用Doctrine_Core :: createTablesFromModels()从模型生成数据库。
我建议编写一个命令行脚本来按顺序调用这两个函数,并自动执行一些其他必要的步骤。这是我用来重新生成数据库的脚本的核心。
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文件创建表的解决方案。