Обязательно перед изменениями сделайте бэкап
Начать стоит со схемы в файле
config/schema.yml
, которая хранит описание структуры БД. Для новой таблицы надо будет описать ее схему в этом файле. Новое поле добавить проще: надо просто дописать его объявление к уже существующей схеме таблицы. Делайте по примеру уже написанных схем. Если задуманная структура не очень сложная, то это не должно составить труда. Также советую заглянуть в
пример из документации.
Далее можно обновить саму БД. Сделать это можно вручную (например, через phpmyadmin). Также можно выполнить команду:
$ php symfony propel:build-sql
Это создаст sql-файл в
data/sql
директории, содержащий запросы для создания описанной структуры БД. Оттуда можно взять запрос для новой таблицы. Это исключит возможность несоответствия таблицы, созданной "вручную" от описанной в
schema.yml
.
Возможно, программисты из веб-студии использовали какой-нибудь плагин для реализации механизма миграций. Например: sfPropelMigrationsLightPlugin . Тогда, если хотите сохранить хорошее качество кода, стоит почитать документацию плагина и обновлять базу с помощью миграций, а не вручную.
Дальше следует обновить модели, формы и фильтры:
$ php symfony propel:build-model
$ php symfony propel:build-forms
$ php symfony propel:build-filters
Это создаст классы моделей, форм и фильтров для новых таблиц, а также обновит свойства и методы для уже существующих классов при добавлении новых полей
(можно будет вызывать $item->getNewfield()).
После этого не забудьте очистить кэш:
$ php symfony cache:clear
Этого должно быть достаточно для несложных изменений.
P.S.: Индексы не потеряются, но их все-таки стоило бы прописать в схеме :)