Как экспортировать первичные ключи в дамп данных?

Когда я экспортирую свою базу данных с помощью doctrine:data-dump, я сталкиваюсь с 2 проблемами: * первичные ключи не экспортируются * вместо правильных имен внешних ключей столбцов используется имя внешней таблицы.

Например, вот мои таблицы:

# schema.yml
Planet:
  connection: doctrine
  tableName: planet
  columns:
    planet_id:
      type: integer(4)
      fixed: false
      unsigned: false
      primary: true
      sequence: planet_planet_id
    solarsystem_id:
      type: integer(4)
      fixed: false
      unsigned: false
      notnull: false
      primary: false
  # some columns...
  relations:
    Solarsystem:
      local: solarsystem_id
      foreign: solarsystem_id
      type: one
  # other relations...

Solarsystem:
  connection: doctrine
  tableName: solarsystem
  columns:
    solarsystem_id:
      type: integer(4)
      fixed: false
      unsigned: false
      primary: true
      sequence: solarsystem_solarsystem_id
    # other columns...
  relations:
    Planet:
      local: solarsystem_id
      foreign: solarsystem_id
      type: many
    # other relations

Когда я делаю дамп, я нахожу такие вещи в data.yml:

Planet_1:
  Solarsystem: _1

Когда я загружаю это данные, это не работает (указан неверный ключ строки: (солнечная система) _1, указанный в (планете) Planet_1). Я должен исправить вручную, как это:

Planet_1:
  solarsystem_id: 1
  planet_id: 1

На данный момент я исправляю data.yml вручную, но это становится проблемой со всеми записями, которые я накапливаю...

Примечание. Я использую Symfony 1.4, Doctrine, postgreSQL, NetBeans, Windows. Не стесняйтесь спрашивать информацию, которую вы считаете полезной.

Спасибо за вашу помощь


person Altefquatre    schedule 10.05.2010    source источник


Ответы (1)


Я рекомендую прочитать эту статью под названием «Никогда не доверяйте доктрине: дамп данных»: http://www.thomaskeller.biz/blog/2010/01/29/never-trust-doctrinedata-dump/

Имея это в виду, вы можете вместо этого проверить pg_dump: http://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP

Этот дамп относится к уровню postgreSQL, и поэтому он вряд ли будет заботиться о вашей схеме Doctrine или спотыкаться о нее.

person Kyle Wild    schedule 13.01.2011