2010-11-19 53 views
0

J'ai fait it mais cela n'a pas fonctionné.Symfony Propel Erreur de base de données multiples

J'ai créé:

propel.schema.xml

propel.schema.yml

# config/propel.schema.yml 
propel: 
    article: 
    id:   ~ 

l'autre configuration db est

orgdb.schema.xml

<?xml version="1.0" encoding="UTF-8"?> 
<database name="orgdb" defaultIdMethod="native" noXsd="true" package="lib.model"> 
<table name="organization"> 
    <column name="id" type="INTEGER" primaryKey="true" required="true" autoIncrement="true"/> 

orgdb.schema.yml

# config/orgdb.schema.yml 
orgdb: 
    organization: 
    id:   ~ 

dans database.yml

# You can find more information about this file on the symfony website: 
# http://www.symfony-project.org/reference/1_4/en/07-Databases 

dev: 
    propel: 
    param: 
     classname: DebugPDO 
     debug: 
     realmemoryusage: true 
     details: 
      time:  { enabled: true } 
      slow:  { enabled: true, threshold: 0.1 } 
      mem:  { enabled: true } 
      mempeak: { enabled: true } 
      memdelta: { enabled: true } 

test: 
    propel: 
    param: 
     classname: DebugPDO 

all: 
    propel: 
    class:  sfPropelDatabase 
    param: 
     classname: PropelPDO 
     dsn:  mysql:dbname=db1;host=localhost 
     username: 
     password: 
     encoding: utf8 
     persistent: true 
     pooling: true 

    orgdb: 
    class:  sfPropelDatabase 
    param: 
     classname: PropelPDO 
     dsn:  mysql:dbname=db2;host=localhost 
     username: 
     password: 
     encoding: utf8 
     persistent: true 
     pooling: true 

J'appelle cette commande:

php symfony propel:build-model 

I pas de problème acheter w poule I dans le site web je vois l'erreur

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db1.organization' doesn't exist 

quand j'appelle cette commande:

php symfony propel:build --all 

l'erreur dans cmd est

Fatal error: Call to a member function addTable() on a non-object in C:\PHP...\lib\vendor\symfony\lib\plugins\sfpropelPlugin\lib\vendor\propel-generator\classes\propel\phing\PropelSQLTask.php on line 237 

une idée?

Merci

Répondre

1

J'ai résolu le problème. Lorsque vous créez les fichiers propel.schema.yml, propel.schema.xml, orgdb.schema.yml et orgdb.schema.xml, vous devez mettre le paquet car vous ne mettez pas toutes les choses générées dans le même paquet. . Ensuite, vous pouvez l'ajouter dans un système (YML et xml) ou dans les deux

par exemple

dans propel.schema.xml

<?xml version="1.0" encoding="UTF-8"?> 
<database name="propel" defaultIdMethod="native" noXsd="true" package="lib.model.propel"> 
    <table name="article"> 
    ... 

et propel.schema.yml

# config/propel.schema.yml 
propel: 
    _attributes: {package: lib.model.propel} 
    article: 
    ... 

bonne chance.