client.py 709 B

1234567891011121314151617181920212223
  1. import os
  2. import sys
  3. from django.db.backends import BaseDatabaseClient
  4. class DatabaseClient(BaseDatabaseClient):
  5. executable_name = 'psql'
  6. def runshell(self):
  7. settings_dict = self.connection.settings_dict
  8. args = [self.executable_name]
  9. if settings_dict['USER']:
  10. args += ["-U", settings_dict['USER']]
  11. if settings_dict['HOST']:
  12. args.extend(["-h", settings_dict['HOST']])
  13. if settings_dict['PORT']:
  14. args.extend(["-p", str(settings_dict['PORT'])])
  15. args += [settings_dict['NAME']]
  16. if os.name == 'nt':
  17. sys.exit(os.system(" ".join(args)))
  18. else:
  19. os.execvp(self.executable_name, args)