【问题标题】:Joomla extension installation with PostgreSQL support支持 PostgreSQL 的 Joomla 扩展安装
【发布时间】:2013-04-04 15:32:03
【问题描述】:

我想通过我的扩展来支持 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 文件来尽我所能。

我的查询有问题吗?

【问题讨论】:

    标签: postgresql joomla joomla3.0 joomla3.1


    【解决方案1】:

    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") 
    );
    

    【讨论】:

    • 谢谢,这防止了我的问题中的错误,但现在我收到关于 INSERT INTO 位的以下错误:Database query failed (error # %s): %s SQL=INSERT INTO "pdo31_shoutbox" ("name", "when", "msg", "user_id") VALUES ('JoomJunk', '2013-04-04 20:00:00', 'Welcome to the Shoutbox', '0');
    • 别担心,我在查询中漏掉了一个字符。感谢您的帮助:)
    猜你喜欢
    • 2012-10-15
    • 2016-11-01
    • 1970-01-01
    • 2014-05-08
    • 2011-05-27
    • 2022-11-18
    • 2014-11-23
    • 2021-06-20
    相关资源
    最近更新 更多