#propel #data-migration
#продвигать #миграция данных #propel #данные-миграция
Вопрос:
Возможно ли сгенерировать файл переноса Propel без изменения схемы? Мне нужно только вставить значения.
Спасибо.
Ответ №1:
Вы можете сгенерировать пустую миграцию следующим образом:
propel migration:create
Ответ №2:
ДА. Просто вызовите diff
цель в команде Propel 1, которая создаст класс миграции.
(Propel в MySQL для меня всегда создает ложные различия, например, между FLOAT
и DECIMAL
, которые я удаляю вручную. Я не знаю, откажется ли он создавать класс, если не будет обнаружено различий).
Ответ №3:
Система миграции Propel не может вставлять значения, обновляйте структуру базы данных только при обновлении схемы.
Если вы используете Symfony2, вы можете использовать команду propel:fixture: * для вставки данных в целях тестирования.
Комментарии:
1. В документации по миграции Propel есть раздел о переносе данных: Propel автоматически выполняет миграцию preUp() и postUp() до и после миграции структуры. Если вы хотите добавить миграцию данных, это место для размещения соответствующего кода.
2. Это делается не для вставки данных, а для переноса ваших данных, например, для их хранения в массиве PHP, преобразования их и повторной вставки.
3. См. Документацию . Мне там не нужны данные о приборах. Допустим, вы храните список категорий в зависимости от параметров диапазона. Мне нужно изменить диапазоны или добавить категории. Каков правильный способ сделать это, если не использовать миграции данных Propel?