hello @all,
I try to use the Extension:BlogPage with Postgres. This depents on VoteNY extension an there is my problem. All SQL-files I have port to pgsql.
./extensions/VoteNY/VoteClass.php line 182 ff. generate the following query
SELECT vote_value FROM "Vote" WHERE vote_page_id = '0' AND username = 'Admin' LIMIT 1
but it must generate a query like
SELECT vote_value FROM mediawiki.Vote WHERE vote_page_id = '0' AND username = 'Admin' LIMIT 1
The " are too mutch, and the schemata must added.
How can I fix this. Thanks.
Regards, Basti
Am 16.07.2013 14:36, schrieb basti:
hello @all,
I try to use the Extension:BlogPage with Postgres. This depents on VoteNY extension an there is my problem. All SQL-files I have port to pgsql.
./extensions/VoteNY/VoteClass.php line 182 ff. generate the following query
SELECT vote_value FROM "Vote" WHERE vote_page_id = '0' AND username = 'Admin' LIMIT 1
but it must generate a query like
SELECT vote_value FROM mediawiki.Vote WHERE vote_page_id = '0' AND username = 'Admin' LIMIT 1
The " are too mutch, and the schemata must added.
How can I fix this. Thanks.
Regards, Basti
MediaWiki-l mailing list MediaWiki-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
I have found the error, but I don't know how to solve it. There is a Problem with the Postgres "serach Path" in the plugin.
On the database site there is only one schema "mediawiki". The $wgDBuser has the default schema "mediawiki" on server site. (Use "SHOW search_path;" in SQL console to check this.)
$wgDBmwschema = "mediawiki"; and $wgDBtype = "postgres"; are also set in LocalSettings.php
The Wiki-DEBUG output say "Schema "mediawiki" already in the search path".
There is always the same Error on Database site:
SELECT COUNT(*) AS VoteCount FROM "Vote" WHERE vote_page_id = '0'
Postgres log:
FEHLER: Relation »Vote« existiert nicht LINE 1: ...Vote::count Admin */ COUNT(*) AS VoteCount FROM "Vote" WH... ^ “. (in english: Relation »Vote« does not exist)
When I change in VoteNY/VoteClass.php it runs.
function UserAlreadyVoted() { $dbr = wfGetDB( DB_SLAVE ); $s = $dbr->selectRow( # Here add Postgres schema 'mediawiki.vote', array( 'vote_value' ), array( 'vote_page_id' => $this->PageID, 'username' => $this->Username ), __METHOD__ ); # Exit for debug exit("UserAlreadyVoted() done");
if( $s === false ) { return false; } else { return $s->vote_value; } }
I have done also some changes in VoteNY/Hooks.php
public static function addTable( $updater ) { $dir = dirname( __FILE__ );
/** change to use Postgres **/ $dbr = wfGetDB( DB_SLAVE ); if ($dbr->getType() == "postgres") { $file = "$dir/vote.postgres.sql"; } else { $file = "$dir/vote.sql"; } /** check if table exists, else the update.php won't run because Postgres exit with Error **/ if (!$dbr->tableExists('vote')) { $updater->addExtensionUpdate( array( 'addTable', 'Vote', $file, true ) ); } /** end of changes **/
return true; }
vote.postgres.sql
-- Postgres Version
-- set Schemata for debug, normally done by includes/db/DatabasePostgres.sql ? 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 '' );
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); --EOF
So it seems that includes/db/DatabasePostgres.sql isn't use by this Plugin or something else is goning wrong that the database connection doesn't nothing about the schema.
Regards, basti
mediawiki-l@lists.wikimedia.org