#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 — большая ошибка с моей стороны …. спасибо, что указали на это — я обновил свой неправильный ответ.