Migrating a Django Project from SQLite to MySQL / PostgreSQL
Tuesday, February 23, 2010 midnight
Should you ever be tasked with migrating a django project running on an sqlite database to postgresql or mysql, the following are some of the steps I took.
The project was already in production, so I needed all the data to come along with it. This caused some problems that django, sadly, wasn’t equipped to handle.
./manage.py dumpdata > mydumpfile.json
./manage.py dumpdata --indent=n > mydumpfileindent.json
grep myword mydumpfileindent.json
grep -A 10 -B 10 -n myword mydumpfileindent.json
mysql -u root -p
mysql> drop database dbname;
mysql> create database dbname
-> character set utf8 collate utf8_general_ci;
mysql> grant all on dbname.* to dbuser@localhost
-> identified by dbpass;
mysql> exit;
sudo -u postgres dropdb dbname;
sudo -u postgres createdb dbname -E utf8 -O dbuser;
./manage.py syncdb
./manage.py sqlflush | mysql -u dbuser -p dbname
./manage.py sqlflush | sudo -u postgre psql dbname
mysql -u dbuser -p dbname
mysql> alter table tablename modify
-> columnname columntype;
mysql> alter table tablename add
-> columnname columntype after othercolumn;
./manage.py loaddata mydumpfile.json
osx utilities:
- SQLite Database Browser
- Sequel Pro for MySQL database management.
