2010-11-19 17 views
0

私はitでしたが、動作しませんでした。Symfony Propel複数のデータベースエラー

は、私が作成した:他のDBの構成は

ある

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

propel.schema.xml

propel.schema.yml 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 

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:   ~ 

私は、このコマンドを呼び出す:

php symfony propel:build-model 

I問題を買わないw私は、このコマンドを呼び出すときに、Webサイトへの鶏私が、私はエラー

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

を参照してください。

php symfony propel:build --all 

CMDの誤差が

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 

任意のアイデアですか?

ありがとう

答えて

1

私はこの問題を解決しました。

propel.schema.yml、propel.schema.xml、orgdb.schema.yml、およびorgdb.schema.xmlを作成するときに、同じパッケージに生成されたすべてのものを入れないので、パッケージを配置する必要があります。そして、あなたはpropel.schema.xml例

のために1つのスキーム(YMLおよびXML)で、またはその両方

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

とpropel.schema.yml

# config/propel.schema.yml 
propel: 
    _attributes: {package: lib.model.propel} 
    article: 
    ... 
でそれを追加することができます

幸運。

関連する問題