Propel ORM данные фикстуры - PullRequest
       29

Propel ORM данные фикстуры

3 голосов
/ 23 октября 2010

Если у меня есть файл фиксации данных yml с именем mydata.yml

User:
  anonymous:
    nickname: anonymous
    first_name: Anonymous

  david:
    nickname: david
    first_name: David

Как мне сообщить propel, где найти этот файл. Нужно ли добавлять какие-либо инструкции к build.properties

и как мне запустить его, чтобы вставить данные в базу данных (я уже сделал propel-gen insert-sql, мне нужно повторить это или что-то)

Примечание: я использую Propel в проекте php, а не в проекте Symfony, поэтому у меня нет доступа к каким-либо настройкам, которые Symfony может добавить, если таковые имеются.

Ответы [ 2 ]

3 голосов
/ 16 марта 2011

Вы можете подготовить вставки в отдельном файле SQL (например, fixtures.sql) и указать Propel в файле sqldb.map, чтобы он запускался при обработке команды propel-gen insert-sql.

Содержимое sqldb.map может выглядеть так:

# Sqlfile -> Database map
schema.sql=yourdatabasename
fixtures.sql=yourdatabasename

Файл sqldb.map создается в каталоге, указанном строкой propel.sql.dir в файле build.properties.

Теоретически вы можете запустить песочницу Symfony где-нибудь и позволить ей преобразовывать приборы в формате yml в команды SQL, а затем использовать их с Propel в вашем проекте.

2 голосов
/ 25 октября 2010

Загрузка данных из осветительных приборов - это функция, которую Symfony добавляет в Propel, она не является частью «базовой» платформы Propel. Поэтому, если вы не используете Symfony, вы не сможете загрузить данные без другого кода. Может быть возможно выделить и удалить код из класса sfPropelData , который выполняет фактическую загрузку, так что вы можете использовать его в другой среде. Пожалуйста, предоставьте свой код для общественности, если вам это удастся, другим тоже может понравиться!

...