Symfony 1.4 Doctrine fixtures加载单个文件?

时间:2011-09-30 12:46:41

标签: php mysql symfony1 doctrine

我有一个工作的应用程序,我想添加一些灯具,但我真正想要做的就是加载新的灯具文件。

当我运行

php symfony doctrine:data-load

是否重新输入数据库中已有的数据。如果没有,我认为我可以调用它,它将只添加自上次以来的新装置。

如果它确实再次输入所有数据,那么有没有办法隔离特定夹具文件上的数据负载?

2 个答案:

答案 0 :(得分:7)

在命令之前使用字符串“help”,您将成为详细说明:

php symfony help doctrine:data-load
...


 If you want to load data from specific files or directories, you can append
 them as arguments:

   ./symfony doctrine:data-load data/fixtures/dev data/fixtures/users.yml

答案 1 :(得分:1)

你可以做你想做的两件事 - 你需要create a new task才能做到这一点......

这将加载到单个灯具文件中:

Doctrine_Core::loadData('/path/to/data.yml');

这会将灯具文件附加到当前数据:

Doctrine_Core::loadData('/path/to/data.yml', true);

所以只需创建一个新任务 - 访问数据库连接并根据你想做的事情运行其中一个命令

抱歉......或许我应该正确阅读本手册......

您确实可以使用当前命令追加和/或使用特定文件。

Usage:
 symfony doctrine:data-load [--application[="..."]] [--env="..."] [--append] [dir_or_file1] ... [dir_or_fileN]

Arguments:
 dir_or_file    Directory or file to load

Options:
 --application  The application name (default: 1)
 --env          The environment (default: dev)
 --append       Don't delete current data in the database

Description:
 The doctrine:data-load task loads data fixtures into the database:

   ./symfony doctrine:data-load

 The task loads data from all the files found in data/fixtures/.

 If you want to load data from specific files or directories, you can append
 them as arguments:

   ./symfony doctrine:data-load data/fixtures/dev data/fixtures/users.yml

 If you don't want the task to remove existing data in the database,
 use the --append option:

   ./symfony doctrine:data-load --append

再一次为误导你而道歉...但只是想想 - 你现在已经学会了如何编写任务: - )