【发布时间】:2011-09-30 12:46:40
【问题描述】:
我有一个可以工作的应用程序,我想添加一些装置,但我真正想做的只是加载新的装置文件。
当我运行时
php symfony doctrine:data-load
它是否重新输入数据库中已有的数据。如果不是,我假设我可以调用它,它只会添加自上次以来的新装置。
如果它确实再次输入所有数据,那么有没有办法隔离特定夹具文件上的数据加载?
【问题讨论】:
标签: php mysql symfony1 doctrine
我有一个可以工作的应用程序,我想添加一些装置,但我真正想做的只是加载新的装置文件。
当我运行时
php symfony doctrine:data-load
它是否重新输入数据库中已有的数据。如果不是,我假设我可以调用它,它只会添加自上次以来的新装置。
如果它确实再次输入所有数据,那么有没有办法隔离特定夹具文件上的数据加载?
【问题讨论】:
标签: php mysql symfony1 doctrine
在命令前加上字符串“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
【讨论】:
你可以做你想做的两件事——你需要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
再次为误导您深表歉意……但请想一想 - 您现在已经学会了如何编写任务 :-)
【讨论】: