2010-10-22 4 views
3

Если у меня есть файл арматура данные YML под названием mydata.ymlPropel ORM светильники данных

User: 
    anonymous: 
    nickname: anonymous 
    first_name: Anonymous 

    david: 
    nickname: david 
    first_name: David 

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

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

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

ответ

2

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

3

Вы можете подготовить свои вставки в отдельный файл 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 в вашем проекте.

Смежные вопросы