From c5bb23c11e1405b228d6db063da3a911acf66f53 Mon Sep 17 00:00:00 2001 From: xiez Date: Fri, 23 Mar 2012 11:01:56 +0800 Subject: [PATCH] Impove migration scripts --- batch-delete.py | 20 +++++++++++++++++++- sqlite-to-mysql.sh | 13 +++++++------ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/batch-delete.py b/batch-delete.py index 7d8d006d9e..60ffba4aba 100644 --- a/batch-delete.py +++ b/batch-delete.py @@ -1,7 +1,9 @@ #!/usr/bin/python +# -*- coding: utf-8 -*- import os import sys +import MySQLdb import settings @@ -13,6 +15,19 @@ except: print 'Environment not set! Exit' sys.exit(1) +def do_create(): + conn = MySQLdb.Connect(host='localhost', user=dbuser, passwd=dbpasswd) + cursor = conn.cursor() + + cmd = ( "CREATE DATABASE IF NOT EXISTS `%s` default charset utf8 COLLATE utf8_general_ci;") % (dbname) + try: + cursor.execute(cmd) + except: + pass + + cursor.close() + conn.close() + def do_delete(prefix): cmd = ('echo "select concat(\'drop table \', table_name ,\';\') from TABLES where TABLE_SCHEMA =\'%s\' and table_name like \'%s_%%\' ;" | mysql -u %s -p%s information_schema | sed -n \'2,$p\' | mysql -u %s -p%s %s') % (dbname, prefix, dbuser, dbpasswd, dbuser, dbpasswd, dbname) try: @@ -21,10 +36,13 @@ def do_delete(prefix): pass if __name__=="__main__": + # create database if not exists + do_create() + + # detele all seahub tables for app in settings.INSTALLED_APPS: app_name = app.split('.')[-1] do_delete(app_name) - do_delete('django') print '[Delete seahub tables...Done]' diff --git a/sqlite-to-mysql.sh b/sqlite-to-mysql.sh index 3fe99ed00e..59874a4910 100755 --- a/sqlite-to-mysql.sh +++ b/sqlite-to-mysql.sh @@ -8,9 +8,9 @@ export PYTHONPATH=/usr/lib/python2.6/site-packages:thirdpart # The database configuration. Change to your config -export DBNAME='seafile-meta' -export DBUSER='seafile-user' -export DBPASSWD='seafile' +export DBNAME='seahub-meta' +export DBUSER='root' +export DBPASSWD='test' # Delete the exist seahub tables in database python batch-delete.py @@ -18,7 +18,8 @@ if [ $? -eq 1 ]; then exit 1 fi -DUMP_FILE='dump_seahub.json' +#DUMP_FILE='dump_seahub.json' +DUMP_FILE='dump_seahub.xml' SETTINGS_COPY='mysqlsettings.py' SETTINGS_MODULE='mysqlsettings' @@ -31,6 +32,6 @@ sed -i "/DATABASE_PASSWORD/c\DATABASE_PASSWORD = '$DBPASSWD'" $SETTINGS_COPY ./manage.py syncdb --settings=$SETTINGS_MODULE -./manage.py dumpdata > $DUMP_FILE --settings=settings && ./manage.py loaddata $DUMP_FILE --settings=$SETTINGS_MODULE && echo '[DONE]' || echo '[FAILED]' +./manage.py dumpdata --format=xml > $DUMP_FILE --settings=settings && ./manage.py loaddata $DUMP_FILE --settings=$SETTINGS_MODULE && echo '[DONE]' || echo '[FAILED]' -rm $DUMP_FILE $SETTINGS_COPY 2> /dev/null +#rm $DUMP_FILE $SETTINGS_COPY 2> /dev/null