支持PostgreSQL的Joomla扩展安装

时间:2013-04-04 15:32:04

标签: 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文件完成了所有工作。

我的查询有问题吗?

1 个答案:

答案 0 :(得分:3)

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") 
);
相关问题