Как экспортировать первичные ключи в data-dump?
Когда я экспортирую свою базу данных с помощью doctrine:data-dump, я сталкиваюсь с двумя проблемами: * первичные ключи не экспортируются * вместо правильного имени столбцов внешних ключей используется имя внешней таблицы.
Например, вот мои таблицы:
# 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
Когда я загружаю данные, это не работает (указан неверный ключ строки: (solarsystem) _1, на который указывает (planet) Planet_1). Я должен исправить вручную, как это:
Planet_1:
solarsystem_id: 1
planet_id: 1
На данный момент я исправляю data.yml вручную, но он начинает становиться болезненным со всеми записями, которые я накапливаю...
Примечание: я использую Symfony 1.4, Doctrine, postgreSQL, NetBeans, Windows. Не стесняйтесь спрашивать информацию, которую вы считаете полезной.
Спасибо за вашу помощь
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
Этот дамп находится на уровне postgreSQL, и поэтому вряд ли будет заботиться о вашей схеме Doctrine или не наткнется на нее.