由于 Joomla 2.5 原生支持 PostgreSQL,我们非常赞成那个。当我为我们的系统开发一个组件时,我想知道使它兼容的确切语义是什么?
对于 MySQL,我的安装脚本位于admin/sql/install.mysql.utf8.sql
. PostgreSQL 会是什么?我也可以使用#_
数据库前缀吗?
由于 Joomla 2.5 原生支持 PostgreSQL,我们非常赞成那个。当我为我们的系统开发一个组件时,我想知道使它兼容的确切语义是什么?
对于 MySQL,我的安装脚本位于admin/sql/install.mysql.utf8.sql
. PostgreSQL 会是什么?我也可以使用#_
数据库前缀吗?
额外的数据库支持旨在尽可能透明,以便您可以保持大部分代码相同。
如果您一直在使用 Joomla! 的 JDatabase 类,您应该在 PHP 中构建这样的查询:
/* (example php may not actually work)
Get the factory DB object */
$db = JFactory::getDbo();
// Get a new JDatabaseQuery object
$query = $db->getQuery(true);
// Build our query...
$query->select('id');
$query->from('#__mycomponents_table');
$query->where('id=99');
// Attach the query to the DB object
$db->setQuery($query);
// Run it and check the result...
if (!$db->loadResult()){...}
正如您已经确定的那样,安装/卸载 SQL 脚本之类的东西需要特定于数据库。这也意味着对您的清单 XML 进行小更新......这是一个示例。
<install>
<sql>
<file charset="utf8" driver="mysql">sql/install.mysql.sql</file>
<file charset="utf8" driver="postgresql">sql/install.postgresql.sql</file>
</sql>
</install>
我建议查看com_finder
代码,因为它确实有一个为 Postgres 安装/卸载 SQL 的特定示例。