Difference between revisions of "Migrating mediawiki from mysql to sqlite"
From Linuxintro
imported>ThorstenStaerk |
imported>ThorstenStaerk |
||
Line 33: | Line 33: | ||
I will admit that I still have some more things to explore here - my "user" table does not contain a field "user_options". But maintenance/sqlite/archives/initial-indexes.sql is called by update.php and requires this. | I will admit that I still have some more things to explore here - my "user" table does not contain a field "user_options". But maintenance/sqlite/archives/initial-indexes.sql is called by update.php and requires this. | ||
I guess it fails in line 1291 of includes/Revision.php | I guess it fails in line 1291 of includes/Revision.php | ||
+ | |||
+ | = TroubleShooting = | ||
+ | I got quite a lot of [[error messages]] that were easy to fix - provided you know how. | ||
+ | |||
+ | == PDO exception == | ||
+ | '''Symptom:''' When surfing to the wiki you get a page displaying this error message: | ||
+ | Unexpected non-MediaWiki exception encountered, of type "PDOException" | ||
+ | exception 'PDOException' with message 'There is no active transaction' in /srv/www/htdocs/mediawiki/includes/db/DatabaseSqlite.php:664 | ||
+ | Stack trace: | ||
+ | '''Solution:''' In LocalSettings.php set $wgDBuser to "". | ||
= See also = | = See also = | ||
* [[Migrating_a_database_from_mysql_to_sqlite]] | * [[Migrating_a_database_from_mysql_to_sqlite]] |
Revision as of 08:35, 8 September 2013
To migrate a mediawiki from MySQL to SQLite there are two basic approaches:
- start with a new database and worry about
- dumping all pages but the Main Page with the dumpBackup command and restoring them with the importDump command
- keeping the articles' revisions
- copying the Main Page from the old wiki to the new
- copying the users and privileges from the old wiki to the new
- copying the wiki statistics (like page visits) from the old wiki to the new
- copying images and other files from the old wiki to the new
- re-doing things like mediawiki extensions on the new wiki
- re-doing your settings e.g. from LocalSettings.php on the new wiki
- just migrate the database below your wiki
migrate database below your wiki
I wanted to migrate the database below my wiki so
- I created a dump (aka backup aka export) of the database
mysqldump wikidb -u wikiuser -p > dump.sql
- I got a MySQL -> SQLite converter
wget https://gist.github.com/esperlu/943776/raw/dd87f4088f6d5ec7563478f7a28a37ba02cf26e2/mysql2sqlite.sh
- I started this converter to create a file /srv/www/htdocs/wikidb.sqlite:
sh mysql2sqlite.sh -u wikiuser -p wikidb | sqlite3 /srv/www/htdocs/wikidb.sqlite
- change LocalSettings.php to reflect
$wgDBtype = "sqlite"; $wgDBserver = ""; $wgDBname = "wikidb"; $wgDBuser = ""; $wgDBpassword = ""; $wgSQLiteDataDir = "/srv/www/htdocs";
- allow your webserver to write to the file:
chown wwwrun:www /srv/www/htdocs/wikidb.sqlite
I will admit that I still have some more things to explore here - my "user" table does not contain a field "user_options". But maintenance/sqlite/archives/initial-indexes.sql is called by update.php and requires this. I guess it fails in line 1291 of includes/Revision.php
TroubleShooting
I got quite a lot of error messages that were easy to fix - provided you know how.
PDO exception
Symptom: When surfing to the wiki you get a page displaying this error message:
Unexpected non-MediaWiki exception encountered, of type "PDOException" exception 'PDOException' with message 'There is no active transaction' in /srv/www/htdocs/mediawiki/includes/db/DatabaseSqlite.php:664 Stack trace:
Solution: In LocalSettings.php set $wgDBuser to "".