Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Db myapp_01
- _ my_customer_foo_schema
- _ my_customer_bar_schema
- Db myapp_02
- _ my_customer_foo_schema
- _ my_customer_bar_schema
- import os
- import sys
- import pg
- #Take the new schema name from the second cmd arguments (the first is the filename)
- newSchema = sys.argv[1]
- #Temp folder for the dumps
- dumpFile = '/test/dumps/' + str(newSchema) + '.sql'
- #Settings
- db_name = 'db_name'
- db_user = 'db_user'
- db_pass = 'db_pass'
- schema_as_template = 'schema_name'
- #Connection
- pgConnect = pg.connect(dbname= db_name, host='localhost', user= db_user, passwd= db_pass)
- #Rename schema with the new name
- pgConnect.query("ALTER SCHEMA " + schema_as_template + " RENAME TO " + str(newSchema))
- #Dump it
- command = 'export PGPASSWORD="' + db_pass + '" && pg_dump -U ' + db_user + ' -n ' + str(newSchema) + ' ' + db_name + ' > ' + dumpFile
- os.system(command)
- #Rename back with its default name
- pgConnect.query("ALTER SCHEMA " + str(newSchema) + " RENAME TO " + schema_as_template)
- #Restore the previus dump to create the new schema
- restore = 'export PGPASSWORD="' + db_pass + '" && psql -U ' + db_user + ' -d ' + db_name + ' < ' + dumpFile
- os.system(restore)
- #Want to delete the dump file?
- os.remove(dumpFile)
- #Close connection
- pgConnect.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement