Устройства Symfony 1.4 Doctrine загружают отдельный файл?

#php #mysql #symfony1 #doctrine

#php #mysql #symfony1 #доктрина

Вопрос:

У меня есть рабочее приложение, и я хочу добавить несколько приспособлений, но на самом деле все, что я хочу сделать, это загрузить новый файл приспособления.

Когда я запускаю

 php symfony doctrine:data-load
  

Он повторно вводит данные, которые уже есть в базе данных. Если нет, я предполагаю, что могу просто вызвать это, и это добавит только новые приспособления с прошлого раза.

Если он снова вводит все данные, есть ли способ изолировать загрузку данных в конкретный файл приспособления?

Ответ №1:

С помощью строки «справка» перед командой вы получаете подробное описание:

 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:

Вы можете делать обе вещи, которые вы хотите — вам нужно будет создать новую задачу, чтобы сделать это…

Это загрузится в отдельный файл приспособлений :

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

Это добавит файл fixtures к текущим данным :

 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
  

Еще раз приношу извинения за то, что ввел вас в заблуждение… но только подумайте — теперь вы научились писать задачи 🙂

Комментарии:

1. Спасибо, но вы предлагаете создать php-файл, поместить в него этот код и вызвать его из командной строки? Как я уже сказал, я обычно использую вызов командной строки: php symfony doctrine:загрузка данных

2. Вам нужно создать новую задачу — php symfony generate task и т. Д… доктрина: загрузка данных на самом деле является задачей — вы тоже можете их создать — поместите свои команды в задачу, а затем запустите ее

3. @DerekOrgan symfony-project.org/more-with-symfony/1_4/en /…

4. Нет необходимости создавать новую задачу.

5. @Gerry — oops — большая ошибка с моей стороны …. спасибо, что указали на это — я обновил свой неправильный ответ.