How to migrate only newer posts from one Mediawiki MySQL to another?


Problem :

I dumped the MySQL database that one instance of Mediawiki uses. I migrated this database to another machine and reinstalled Mediawiki. The old machine is still running and getting new posts. How can I migrate only these new posts to the new machine? If a just do a new dump and migrate it to the new machine, it will work?



Solution :

If there are no edits on your new wiki, you can just go ahead and do the full dump/import again:

At your old server:

 mysqldump --user=USERNAME --password=PASSWORD --host=DB.MYWIKI.COM wikidb > dbdump.sql

At your new server:

 mysql --user=USERNAME --password=PASSWORD wikidb < dbdump.sql

This will overwrite existing all tables.

If, for some reason, you need to export/import pages revised later than a certain date, it might be easiest to use the Recent Changes API to get a list of all pages recently changed, e.g. action=query&list=recentchanges&rcprop=title, and then export those pages via Special:Export. You will get an XML dump, that you can then import via Special:Import. When doing the dump, you can even specify that you only want changes after a certain date, like this:

https://en.wikipedia.org/w/index.php?title=Special:Export&pages=Main_Page%0AStack%20overflow&offset=2014-10-27T20:25:56Z&limit=5

Note the odd separator between pagenames: %0A. See https://www.mediawiki.org/wiki/Manual:Parameters_to_Special:Export for more options when doing the export


Mysql Tutorials

Mysql Howto..

Views do not allow subqueries in the FROM clause, how to rewrite my SQL without subquery?

How to create a mysql php multi-level list navigation

How to iterate through a MySQL table with Python?

How can I copy a mysql input to another table?

How to add string to MYSQL database, and deleting last character of string in it using php?

How to Reset MySQL database with time limit using php

How to exclude duplicate addresses for reporting in MySQL?

How to store a set of values from another table in a field in MySQL

How to get the time when a mysql trigger was created or last updated?

How do you properly update a mysql field with NULL?

How to increase performance for heavy inserts in mysql?

how to solve this issue about InvalidClassException when deserializing objects from inputstream?

How to sort inner aggregate of date_histogram aggregation in Elasticsearch?

How to add scores like 'A','B','C' with mySQL

How to add variables in SQL

How to run two queries on mysql if first one generate no results

How to update two MySQL tables with PHP?

how to run mysql from the command line on mac?

How do I update a value on a page instantly (or ASAP) when it's updated in MySQL database? (without refresh)

How to get the sum of a column from combined tables in mySQL?

How to Create a MySQL Table with the Primary Key sorted by DESC and keep it that way after INSERTing new rows?

MySQL How to insert new record or update a field depending on whether it exists?

How to tell if any MySQL connections has been dropped or timed out?

RoR / MySQL: How many Ruby instances can work on 1 MySQL database (in parallel)?

mysql how to order by user defined order/sort by number of items on a field

How to check MySQL cache lifetime?

How to calculate interval between datetime in MySQL?

How to update mysql data when using explode

How do I lag columns in MySQL?

How to save time as UTC time in php/mysql?