根据Propel API Docs,您可以通过以下方式在您的 schema.xml 文件中定义数据库连接:
<?xml version="1.0" encoding="UTF-8"?>
<database name="bookstore" defaultIdMethod="native">
<!-- table definitions go here -->
</database>
然后在您的runtime-conf.xml 设置中,您可以设置连接参数:
<datasources default="bookstore">
<datasource id="bookstore">
<adapter>mysql</adapter> <!-- sqlite, mysql, mssql, oracle, or pgsql -->
<connection>
<dsn>mysql:host=localhost;dbname=my_db_name</dsn>
<user>my_db_user</user>
<password>my_db_password</password>
</connection>
</datasource>
</datasources>
-- 编辑--
Propel 似乎不支持数据库标签的别名属性,但您应该能够摆脱以下情况:
<?xml version="1.0" encoding="UTF-8"?>
<database name="bookstore_primary" defaultIdMethod="native">
<!-- table definitions go here -->
</database>
<database name="bookstore_secondary" defaultIdMethod="native">
<!-- table definitions go here -->
</database>
<datasources default="bookstore_primary">
<datasource id="bookstore_primary">
<adapter>mysql</adapter> <!-- sqlite, mysql, mssql, oracle, or pgsql -->
<connection>
<dsn>mysql:host=localhost;dbname=bookstore_primary</dsn>
<user>my_db_user</user>
<password>my_db_password</password>
</connection>
</datasource>
</datasources>
<datasources default="bookstore_secondary">
<datasource id="bookstore_secondary">
<adapter>mysql</adapter> <!-- sqlite, mysql, mssql, oracle, or pgsql -->
<connection>
<dsn>mysql:host=localhost;dbname=bookstore_secondary</dsn>
<user>my_db_user</user>
<password>my_db_password</password>
</connection>
</datasource>
</datasources>
看看这是否有效。归根结底,真正重要的是可以连接到两个数据库(使用各自的 DSN)。