当我使用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
当我对数据加载时,它不起作用(指定的行密钥无效:( solarsystem)_1,在(planet)Planet_1中引用)。我必须像这样手动修复:
Planet_1:
solarsystem_id: 1
planet_id: 1
目前,我正在手动修复data.yml,但是我正积累的所有记录开始变得很痛苦......
注意:我正在使用Symfony 1.4,Doctrine,postgreSQL,NetBeans,Windows。随意询问您认为有用的信息。
感谢您的帮助
答案 0 :(得分: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架构。