Nitro Porter

Data migrations for communities

View the Project on GitHub linc/nitro-porter

User Guide


You need:

Nitro Porter will set PHP’s memory limit to 256MB. If it’s unable to do so, it may suffer performance issues or generate errors. For small forums, you may be able to safely reconfigure it to 128MB or lower.

A quick way to get all of the above would be installing MAMP or XAMPP on your laptop.


To use the webpage interface, drop the latest release of Nitro Porter into a web root and navigate to the page in your browser after setting up the config.php file.

To use the command line interface (CLI), get Composer and composer global require "linc/nitro-porter".

To set up the config, copy config-sample.php as config.php. Add connections for your source and output to config.php.

If using the CLI, now do composer install and see the options with porter --help.

Suggestions & Troubleshooting

Follow the logs

NItro Porter logs its activity to a porter.log file in the root. Open it with your favorite log viewer to follow along with its progress. When using the webpage interface, it won’t report results on the page until it’s done.

Database table prefixes

Try using the same database as both source & target. Nitro Porter works well with multiple platforms installed in the same database using unique table prefixes.

Currently, it only uses the default table prefix for targets but you can specify the source prefix. It uses PORT_ as the prefix for its intermediary work storage. You can safely delete the PORT_ tables after the migration.

504 Gateway Error

While Porter does increase PHP’s timeout, your webserver may disconnect, resulting in a 504 Gateway Error. You must alter your web server’s config to increase its timeout. To set a 30-min timeout in Apache, set Timeout 1800 in your httpd.conf and restart.