2011-03-31 105 views
1

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

但是我们如何才能实现这一功能。从yaml到db。

有任何命令是这样的 ./doctrine产生-DB-YAML

回答

2

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

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

  2. 使用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"; 
0

,因为我已经发现了艰辛的道路这是不可能的。您可以从yaml文件生成模型,然后从模型创建表格。我的教义完美地完成了第一个,但表格的创建却没有发生。我仍然试图找到一个解决方案来从yaml文件创建表。