开发者

Symfony Propel Multiple Database Error

I did it but It did not work.

I created:

propel.schema.xml

propel.schema.yml

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

the other db configuration is

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" primaryKe开发者_JAVA技巧y="true" required="true" autoIncrement="true"/>   

orgdb.schema.yml

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

in 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

I call this command:

php symfony propel:build-model

I haven't problem buy when I in to the web site I see the error

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

when I call this command:

php symfony propel:build --all

the error in cmd is

  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

any idea?

Thanks


I solved the problem.

when you create the propel.schema.yml, propel.schema.xml, orgdb.schema.yml and orgdb.schema.xml you need to put the package becouse you do not put all the things generated in the same package. Then you can add it in one scheme(yml and xml) or in both

for example

in propel.schema.xml

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

and in propel.schema.yml

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

good luck.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜