Page MenuHomePhabricator

Support of PostgreSQL for BlogPage
Open, LowestPublic

Description

Author: bugs

Description:
Es ist ein Datenbankfehler aufgetreten. Der Grund kann ein Programmierfehler sein. Die letzte Datenbankabfrage lautete:

UPDATE "user_stats" SET stats_opinions_created = NULL WHERE stats_user_id = '1'

aus der Funktion „BlogHooks::updateCreatedOpinionsCount“. Die Datenbank meldete den Fehler „23502: FEHLER: NULL-Wert in Spalte »stats_opinions_created« verletzt Not-Null-Constraint “.

I have chnaged BlockHooks.php line 171/172 to
array( 'stats_opinions_created' => $opinionsCreated ),
array( 'stats_opinions_created' => '1' ),
and it works.

How can I solve this?

Regards,
basti


Version: REL1_21-branch
Severity: normal
OS: Linux
Platform: Other

Details

Reference
bz57747

Related Objects

View Standalone Graph
This task is connected to more than 200 other tasks. Only direct parents and subtasks are shown here. Use View Standalone Graph to show more of the graph.

Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 2:30 AM
bzimport added a project: BlogPage.
bzimport set Reference to bz57747.
bzimport created this task.Nov 29 2013, 3:23 PM

bugs wrote:

Sorry something get wrong on my post (2013-11-29 15:23:09) here.
I try to port BlogPage to postgres and "$opinionsCreated" seems to be allways null.

there is my postgres code i have create:

// SQL from comments-extention

  • set Schemata

SET search_path = mediawiki;

CREATE TABLE "Comments"
(

commentid SERIAL NOT NULL,
Comment_Page_ID integer NOT NULL DEFAULT 0,
Comment_user_id integer NOT NULL DEFAULT 0,
Comment_Username varchar(200) NOT NULL DEFAULT '',
Comment_Text text NOT NULL,
Comment_Date timestamp without time zone NOT NULL,
Comment_Parent_ID integer NOT NULL DEFAULT 0,
Comment_IP varchar(45) NOT NULL DEFAULT '',
Comment_Plus_Count integer NOT NULL DEFAULT 0,
Comment_Minus_Count integer NOT NULL DEFAULT 0,
CONSTRAINT comments_pkey PRIMARY KEY (commentid)

);

CREATE TABLE "Comments_Vote"
(

comment_vote_id SERIAL PRIMARY KEY,
Comment_Vote_user_id integer NOT NULL DEFAULT 0,
Comment_Vote_Username varchar(200) NOT NULL DEFAULT '',
Comment_Vote_Score integer NOT NULL DEFAULT 0,
Comment_Vote_Date timestamp without time zone NOT NULL,
Comment_Vote_IP varchar(45) NOT NULL DEFAULT ''

);

CREATE TABLE "Comments_block" (

cb_id SERIAL PRIMARY KEY,
cb_user_id integer NOT NULL default '0',
cb_user_name varchar(255) NOT NULL default '',
cb_user_id_blocked integer default NULL,
cb_user_name_blocked varchar(255) NOT NULL default '',
cb_date timestamp without time zone NOT NULL

);

  • set rights to the wikiuser, replace my_wikiuser with your defined database username

ALTER TABLE mediawiki."Comments"

OWNER TO my_wikiuser;

ALTER TABLE mediawiki."Comments_Vote"

OWNER TO my_wikiuser;

ALTER TABLE mediawiki."Comments_block"

OWNER TO my_wikiuser;

CREATE OR REPLACE FUNCTION ifnull(anyelement, anyelement)

RETURNS anyelement AS

$BODY$

SELECT COALESCE($1, $2)

$BODY$

LANGUAGE sql IMMUTABLE

//END SQL from comments-extention

// SQL from SocialProfile/UserStats extention

  • Postgres version

CREATE TABLE user_stats (

stats_user_id                        INTEGER  NOT NULL  DEFAULT 0  PRIMARY KEY,
stats_year_id                        INTEGER  NOT NULL  DEFAULT 0,
stats_user_name                      TEXT     NOT NULL  DEFAULT '',
stats_user_image_count               INTEGER  NOT NULL  DEFAULT 0,
stats_comment_count                  INTEGER  NOT NULL  DEFAULT 0,
stats_comment_score                  INTEGER  NOT NULL  DEFAULT 0,
stats_comment_score_positive_rec     INTEGER  NOT NULL  DEFAULT 0,
stats_comment_score_negative_rec     INTEGER  NOT NULL  DEFAULT 0,
stats_comment_score_positive_given   INTEGER  NOT NULL  DEFAULT 0,
stats_comment_score_negative_given   INTEGER  NOT NULL  DEFAULT 0,
stats_comment_blocked                INTEGER  NOT NULL  DEFAULT 0,
stats_vote_count                     INTEGER  NOT NULL  DEFAULT 0,
stats_edit_count                     INTEGER  NOT NULL  DEFAULT 0,
stats_opinions_created               INTEGER  NOT NULL  DEFAULT 0,
stats_opinions_published             INTEGER  NOT NULL  DEFAULT 0,
stats_referrals                      INTEGER  NOT NULL  DEFAULT 0,
stats_referrals_completed            INTEGER  NOT NULL  DEFAULT 0,
stats_challenges_count               INTEGER  NOT NULL  DEFAULT 0,
stats_challenges_won                 INTEGER  NOT NULL  DEFAULT 0,
stats_challenges_rating_positive     INTEGER  NOT NULL  DEFAULT 0,
stats_challenges_rating_negative     INTEGER  NOT NULL  DEFAULT 0,
stats_friends_count                  INTEGER  NOT NULL  DEFAULT 0,
stats_foe_count                      INTEGER  NOT NULL  DEFAULT 0,
stats_gifts_rec_count                INTEGER  NOT NULL  DEFAULT 0,
stats_gifts_sent_count               INTEGER  NOT NULL  DEFAULT 0,
stats_weekly_winner_count            INTEGER  NOT NULL  DEFAULT 0,
stats_monthly_winner_count           INTEGER  NOT NULL  DEFAULT 0,
stats_total_points                   INTEGER            DEFAULT 0,
stats_overall_rank                   INTEGER  NOT NULL  DEFAULT 0,
up_complete                          INTEGER,
user_board_count                     INTEGER           DEFAULT 0,
user_board_sent                      INTEGER           DEFAULT 0,
user_board_count_priv                INTEGER           DEFAULT 0,
stats_picturegame_votes              INTEGER           DEFAULT 0,
stats_picturegame_created            INTEGER           DEFAULT 0,
user_status_count                    INTEGER           DEFAULT 0,
stats_poll_votes                     INTEGER           DEFAULT 0,
user_status_agree                    INTEGER           DEFAULT 0,
stats_quiz_questions_answered        INTEGER           DEFAULT 0,
stats_quiz_questions_correct         INTEGER           DEFAULT 0,
stats_quiz_points                    INTEGER           DEFAULT 0,
stats_quiz_questions_created         INTEGER           DEFAULT 0,
stats_quiz_questions_correct_percent FLOAT             DEFAULT 0,
stats_links_submitted                INTEGER  NOT NULL DEFAULT 0,
stats_links_approved                 INTEGER  NOT NULL DEFAULT 0

);

  • set Schemata

SET search_path = mediawiki;

  • user_points_weekly

CREATE TABLE /*_*/user_points_weekly (

up_id serial NOT NULL PRIMARY KEY,
up_user_id integer NOT NULL default '0',
up_user_name varchar(255) NOT NULL default '',
up_points float NOT NULL default '0'

) /*$wgDBTableOptions*/;

CREATE INDEX /*i*/up_user_id ON /*_*/user_points_weekly (up_user_id);
ALTER TABLE mediawiki."user_points_weekly" OWNER TO my_wikiuser;

  • user_points_monthly

CREATE TABLE /*_*/user_points_monthly (

`up_id` int(11) NOT NULL auto_increment PRIMARY KEY,
`up_user_id` int(11) NOT NULL default '0',
`up_user_name` varchar(255) NOT NULL default '',
`up_points` float NOT NULL default '0'

) /*$wgDBTableOptions*/;

CREATE INDEX /*i*/up_user_id ON /*_*/user_points_monthly (up_user_id);
ALTER TABLE mediawiki."user_points_monthly" OWNER TO my_wikiuser;

  • user_points_archive

CREATE TABLE /*_*/user_points_archive (

up_id serial NOT NULL PRIMARY KEY,
up_period integer NOT NULL default '0',
up_date timestamp without time zone NOT NULL,
up_user_id integer NOT NULL default '0',
up_user_name varchar(255) NOT NULL,
up_points float NOT NULL default '0'

) /*$wgDBTableOptions*/;

CREATE INDEX up_user_id_archive ON user_points_archive (up_user_id);
ALTER TABLE mediawiki."user_points_archive" OWNER TO my_wikiuser;

//END SQL from SocialProfile/UserStats extention

// SQL from VoteNY extention

  • Postgres Version
  • author: Sebastian Fiedler
  • set Schemata

SET search_path = mediawiki;

CREATE TABLE "Vote" (

  • Internal ID to identify between different vote tags on different pages vote_id SERIAL NOT NULL PRIMARY KEY,
  • Username (if any) of the person who voted username varchar(255) NOT NULL default '0',
  • User ID of the person who voted vote_user_id integer NOT NULL default '0',
  • ID of the page where the vote tag is in vote_page_id integer NOT NULL default '0',
  • Value of the vote (ranging from 1 to 5) vote_value char(1) NOT NULL default '',
  • Timestamp when the vote was cast vote_date timestamp without time zone NOT NULL,
  • IP address of the user who voted vote_ip varchar(45) NOT NULL default ''

) /*$wgDBTableOptions*/;

CREATE INDEX vote_page_id_index ON "Vote" (vote_page_id);
CREATE INDEX valueidx ON "Vote" (vote_value);
CREATE INDEX usernameidx ON "Vote" (username);
CREATE INDEX vote_date ON "Vote" (vote_date);

// END SQL from VoteNY extention

Have I forgot something?
Do not hesitate to contact me.

bugs wrote:

Patch of BlogHooks.php

Postgres default use lowerCase names so escape it.

Attached:

bugs wrote:

SQL file

Attached:

scfc added a subscriber: scfc.Nov 24 2014, 4:54 AM
lcawte triaged this task as Low priority.Jan 25 2015, 4:46 PM
lcawte lowered the priority of this task from Low to Lowest.
SamanthaNguyen moved this task from Backlog to BlogPage on the Social-Tools board.May 8 2016, 3:04 PM
SamanthaNguyen moved this task from Backlog to Bugs on the BlogPage board.May 8 2016, 4:04 PM
Jdforrester-WMF added a subscriber: Jdforrester-WMF.

Migrating from the old tracking task to a tag for PostgreSQL-related tasks.

SamanthaNguyen renamed this task from Port to Postgres Database to Support of PostgreSQL for BlogPage.Jul 12 2017, 5:59 PM