From 19fcdecd15daf8e6e468262dffdf65fe1585423a Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 13 Jan 2012 12:14:34 +0530 Subject: [PATCH 1/5] apply patch on a particular database --- wnf.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wnf.py b/wnf.py index 3976fe5bab..e9fe64e041 100755 --- a/wnf.py +++ b/wnf.py @@ -78,6 +78,9 @@ def run(): parser.add_option("-f", "--force", action="store_true", dest="force", default=False, help="Force Apply all patches specified using option -p or --patch") + parser.add_option("-d", "--db", + dest="db_name", + help="Apply the patches on given db") (options, args) = parser.parse_args() if options.patch_list: @@ -91,7 +94,7 @@ def run(): } kwargs = options.__dict__ from webnotes.modules.patch_handler import PatchHandler - PatchHandler(db_name=getattr(webnotes.defs, 'default_db_name'), verbose=kwargs.get('verbose')).run(**kwargs) + PatchHandler(db_name=kwargs.get('db_name') or getattr(webnotes.defs, 'default_db_name'), verbose=kwargs.get('verbose')).run(**kwargs) if __name__=='__main__': From f93208d04e894d50dc643277cc87286c62d8d0f6 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 13 Jan 2012 12:25:21 +0530 Subject: [PATCH 2/5] commit before logging --- py/webnotes/modules/patch_handler.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py/webnotes/modules/patch_handler.py b/py/webnotes/modules/patch_handler.py index 67034b1924..110b9189dd 100644 --- a/py/webnotes/modules/patch_handler.py +++ b/py/webnotes/modules/patch_handler.py @@ -70,8 +70,8 @@ class PatchHandler: patch = __import__(module_file, fromlist=True) getattr(patch, 'execute')() - self.log(log_type='success', patch_module=patch_module, patch_file=patch_file) webnotes.conn.commit() + self.log(log_type='success', patch_module=patch_module, patch_file=patch_file) except Exception, e: webnotes.conn.rollback() From f72c85dc6d58cde3e88fa76ae959c1063aea937a Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 13 Jan 2012 13:09:00 +0530 Subject: [PATCH 3/5] Minor changes in patch_handler --- py/webnotes/modules/patch_handler.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/py/webnotes/modules/patch_handler.py b/py/webnotes/modules/patch_handler.py index 110b9189dd..3756692a7c 100644 --- a/py/webnotes/modules/patch_handler.py +++ b/py/webnotes/modules/patch_handler.py @@ -33,7 +33,7 @@ class PatchHandler: self.verbose = kwargs.get('verbose') try: self.db_name = kwargs.get('db_name') - webnotes.conn = None + if webnotes.conn: webnotes.conn.close() webnotes.conn = Database(user=self.db_name) webnotes.conn.use(self.db_name) if not (webnotes.session and webnotes.session['user']): @@ -177,9 +177,11 @@ class PatchHandler: patch = str(patch_module) + "." + str(patch_file) if log_type == 'success': + webnotes.conn.begin() webnotes.conn.sql("""\ INSERT INTO `__PatchLog` VALUES (%s, now())""", patch) + webnotes.conn.commit() if self.verbose: print 'Patch: %s applied successfully on %s' % (patch, str(self.db_name)) elif log_type == 'error' or log_type == 'info': From 79643b8359321ae485398e0ef14fa4eea5e6bc76 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 13 Jan 2012 13:19:26 +0530 Subject: [PATCH 4/5] Close connection after running patches --- py/webnotes/modules/patch_handler.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/py/webnotes/modules/patch_handler.py b/py/webnotes/modules/patch_handler.py index 3756692a7c..85d06ca881 100644 --- a/py/webnotes/modules/patch_handler.py +++ b/py/webnotes/modules/patch_handler.py @@ -156,6 +156,8 @@ class PatchHandler: self.block_user(False) + webnotes.conn.close() + def log(self, **kwargs): """ From 48228c926e886a97efcc947ade5325dae0f7caef Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Fri, 13 Jan 2012 13:20:53 +0530 Subject: [PATCH 5/5] Close connection after running patches --- py/webnotes/modules/patch_handler.py | 1 - 1 file changed, 1 deletion(-) diff --git a/py/webnotes/modules/patch_handler.py b/py/webnotes/modules/patch_handler.py index 85d06ca881..bf6d45c82c 100644 --- a/py/webnotes/modules/patch_handler.py +++ b/py/webnotes/modules/patch_handler.py @@ -33,7 +33,6 @@ class PatchHandler: self.verbose = kwargs.get('verbose') try: self.db_name = kwargs.get('db_name') - if webnotes.conn: webnotes.conn.close() webnotes.conn = Database(user=self.db_name) webnotes.conn.use(self.db_name) if not (webnotes.session and webnotes.session['user']):