Сгенерировать файл переноса Propel только для ввода данных

#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?