【问题标题】:Symfony 1.4 Doctrine fixtures load individual file?Symfony 1.4 Doctrine 固定装置加载单个文件?
【发布时间】:2011-09-30 12:46:40
【问题描述】:

我有一个可以工作的应用程序,我想添加一些装置,但我真正想做的只是加载新的装置文件。

当我运行时

php symfony doctrine:data-load

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

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

【问题讨论】:

    标签: php mysql symfony1 doctrine


    【解决方案1】:

    在命令前加上字符串“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
    

    【讨论】:

      【解决方案2】:

      你可以做你想做的两件事——你需要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
      

      再次为误导您深表歉意……但请想一想 - 您现在已经学会了如何编写任务 :-)

      【讨论】:

      • 谢谢,但是您是否建议制作一个 php 文件并将此代码放入其中并从命令行调用它?正如我所说,我通常使用命令行调用:php symfony dictionary:data-load
      • 你需要创建一个新任务 - php symfony generate task 等等 ...教义:数据加载实际上是一个任务 - 你也可以创建这些 - 将你的命令放在任务中然后运行它
      • 无需创建新任务。
      • @Gerry - 哎呀 - 我犯了个大错误......感谢您指出这一点 - 我已经更新了我的错误答案。
      猜你喜欢
      • 2019-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2011-05-14
      相关资源
      最近更新 更多