7 # TODO turn template1 in a parameter
8 # This should be exposed from openerp (currently in
9 # openerp/service/web_services.py).
10 def drop_database(database_name):
12 db = openerp.sql_db.db_connect('template1')
14 cr.autocommit(True) # avoid transaction block
16 # TODO option for doing this.
17 # Try to terminate all other connections that might prevent
18 # dropping the database
20 cr.execute("""SELECT pg_terminate_backend(procpid)
22 WHERE datname = %s AND
23 procpid != pg_backend_pid()""",
29 cr.execute('DROP DATABASE "%s"' % database_name)
31 print "Can't drop %s" % (database_name,)
37 drop_database(args.database)
39 def add_parser(subparsers):
40 parser = subparsers.add_parser('drop',
41 description='Drop a database.')
42 parser.add_argument('-d', '--database', metavar='DATABASE',
43 **common.required_or_default('DATABASE', 'the database to create'))
45 parser.set_defaults(run=run)