Server : Apache System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64 User : dh_edsupp ( 6597262) PHP Version : 8.2.26 Disable Function : NONE Directory : /lib/python3/dist-packages/django/db/backends/postgresql/ |
Upload File : |
import signal from django.db.backends.base.client import BaseDatabaseClient class DatabaseClient(BaseDatabaseClient): executable_name = 'psql' @classmethod def settings_to_cmd_args_env(cls, settings_dict, parameters): args = [cls.executable_name] options = settings_dict.get('OPTIONS', {}) host = settings_dict.get('HOST') port = settings_dict.get('PORT') dbname = settings_dict.get('NAME') or 'postgres' user = settings_dict.get('USER') passwd = settings_dict.get('PASSWORD') sslmode = options.get('sslmode') sslrootcert = options.get('sslrootcert') sslcert = options.get('sslcert') sslkey = options.get('sslkey') if user: args += ['-U', user] if host: args += ['-h', host] if port: args += ['-p', str(port)] args += [dbname] args.extend(parameters) env = {} if passwd: env['PGPASSWORD'] = str(passwd) if sslmode: env['PGSSLMODE'] = str(sslmode) if sslrootcert: env['PGSSLROOTCERT'] = str(sslrootcert) if sslcert: env['PGSSLCERT'] = str(sslcert) if sslkey: env['PGSSLKEY'] = str(sslkey) return args, (env or None) def runshell(self, parameters): sigint_handler = signal.getsignal(signal.SIGINT) try: # Allow SIGINT to pass to psql to abort queries. signal.signal(signal.SIGINT, signal.SIG_IGN) super().runshell(parameters) finally: # Restore the original SIGINT handler. signal.signal(signal.SIGINT, sigint_handler)