postgresql - 支持 PostgreSQL 的 Joomla 扩展安装

标签 postgresql joomla joomla3.0 joomla3.1

我想用我的扩展支持 PostgreSQL,但是当我尝试安装它时遇到了问题。目前,我的安装部分的 XML 中有以下内容:

<install>
   <sql>
      <file driver="mysql" charset="utf8">sql/install.mysql.utf8.sql</file>
      <file driver="postgresql" charset="utf8">sql/install.postgresql.utf8.sql</file>
   </sql>
</install>

这是install.postgresql.utf8.sql的代码:

CREATE TABLE "#__shoutbox" (
    "id" serial NOT NULL,
    "name" character varying(25) DEFAULT '' NOT NULL,
    "when" timestamp without time zone DEFAULT '' NOT NULL,
    "ip" character varying(15) DEFAULT '' NOT NULL,
    "msg" text NOT NULL,
    "user_id" bigint(11) DEFAULT 0 NOT NULL,
    PRIMARY KEY ("id")
);

INSERT INTO "#__shoutbox" ("name", "when", "msg", "user_id") VALUES ('JoomJunk', '2013-04-04 20:00:00', 'Welcome to the Shoutbox', '0');

我注意到 MySQL 和 PostgreSQL 的查询之间存在一些差异,我认为我已经考虑到了这些差异,但是当我尝试安装扩展时,出现以下错误:

Database query failed (error # %s): %s SQL=CREATE TABLE "pdo31_shoutbox" ( "id" serial NOT NULL, "name" character varying(25) DEFAULT '' NOT NULL, "when" timestamp without time zone DEFAULT '' NOT NULL, "ip" character varying(15) DEFAULT '' NOT NULL, "msg" text NOT NULL, "user_id" bigint(11) DEFAULT 0 NOT NULL, PRIMARY KEY ("id") );

没有关于支持 PostgreSQL 扩展的文档,因此我通过查看 Joomla 3.1 安装文件夹中的 SQL 文件来尽我所能。

是我的查询有问题吗?

最佳答案

when 的默认值不是有效的时间戳。如果您希望何时为空,请删除 NOT NULL 约束,以便它可以为 NULL。否则指定有效的时间戳,如“2013-4-4 12:34:56”。

postgresql 中的 Bigint 不支持大小规范。它始终是 64 位(超过 11 位十进制数字)。

CREATE TABLE "pdo31_shoutbox" ( 
  "id" serial NOT NULL, 
  "name" character varying(25) DEFAULT '' NOT NULL, 
  "when" timestamp without time zone, 
  "ip" character varying(15) DEFAULT '' NOT NULL, 
  "msg" text NOT NULL, 
  "user_id" bigint DEFAULT 0 NOT NULL, 
  PRIMARY KEY ("id") 
);

关于postgresql - 支持 PostgreSQL 的 Joomla 扩展安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15815539/

相关文章:

c - PostgreSQL:如何实现 GIN?

php - Google Google App Engine 用于 Joomla 中的静态文件

Joomla 3.0 - 内容创建

乔姆拉! - 从按钮的 iframe 处理程序中的指定文件加载 editor-xtd 插件布局

javascript - 当管理员在前面登录时,如何找到Joomla 3.0中js包含的位置

python - Django raw sql/postgres 时区混淆

python - psycopg2 "TypeError: not all arguments converted during string formatting"

sql - 如何获取一列中具有最大值的行?

CSS 显示 : table or display:table-cell img in safari and internt explorer

css - 如何使背景图片宽度为:100% of screen in head module?