#doctrine #symfony-1.4 #symfony-plugins
#доктрина #symfony-1.4 #symfony-плагины
Вопрос:
Я делаю свои первые шаги в мире плагинов symfony и немного теряюсь…
У меня есть живое приложение с базой данных. Обычно, когда мне нужна новая таблица или поле, я выполняю миграцию, обновляя свой schema.yml, вызывая команды generate-migration-diff и build -all-classes -and-migrate symfony .
Сегодня мне нужно установить плагин (т.Е. sfCombinePlugin), чтобы минимизировать мои скрипты js и css. Я установил его с помощью команды symfony plugin: install, все в порядке, у меня есть все мои файлы в папке plugins. Я следую за прочитанным, в нем говорится о сборке модели, поэтому я запускаю команду doctrine:build-model, и в моей папке lib / model / doctrine появляется папка sfCombinePlugin.
Но теперь я застрял, мне нужно добавить таблицу в мою базу данных. В read- me говорится, чтобы сгенерировать sql с помощью doctrine: build-sql и запустить сгенерированный sql в моей базе данных. Но я вижу, что возникают некоторые проблемы…
Удалит ли он мои данные, запустив файл sql? Я почти уверен, что так и будет, потому что он создает базу данных с нуля…
Итак, я хотел бы использовать миграцию, как я обычно делаю. Но когда я запускаю generate-migration-diff, он не учитывает схему.yml из папки плагина. Это нормально или ошибка?
Я думал о копировании содержимого плагина schema.yml внутри файла приложения schema.yml, но я не уверен, что это хорошая идея, потому что классы модели будут находиться не в папке sfCombinePlugin, а в общей папке модели. И это звучит не очень хорошо.
Ответ №1:
build-sql
просто создаст файлы SQL; insert-sql
перезапишет базу данных. Когда я добавляю таблицу подобным образом, я только что просмотрел сгенерированный SQL data/sql
и добавил таблицы вручную. в s2 встроены миграции, IIRC. Для s1.4 ознакомьтесь http://www.symfony-project.org/plugins/sfPropelMigrationsLightPlugin — только что нашел через Google, я никогда им не пользовался.
Комментарии:
1. Привет, в s1.4 также есть система миграции, точнее, это doctrine orm. Но он не учитывает schema.yml из каталога плагина для создания классов миграции. И в этом проблема :/
2. Ах. Большинство моих проектов использовали Propel, поэтому, к сожалению, я не знаком с инструментами Doctrine.