32 lines
926 B
Python
32 lines
926 B
Python
import paramiko, sys
|
|
|
|
SERVER_IP = '101.79.17.164'
|
|
LOCAL_SQL = r'C:\GUARDiA\workspace\guardia-mall\backend\_workspace\migration_zone_delivery_areas.sql'
|
|
REMOTE_SQL = '/tmp/mall_migration_zone.sql'
|
|
|
|
c = paramiko.SSHClient()
|
|
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
|
c.connect(SERVER_IP, username='root', password='1q2w3e!Q', timeout=30)
|
|
|
|
sftp = c.open_sftp()
|
|
sftp.put(LOCAL_SQL, REMOTE_SQL)
|
|
sftp.close()
|
|
print('[OK] uploaded migration SQL')
|
|
|
|
def run(cmd):
|
|
stdin, stdout, stderr = c.exec_command(cmd)
|
|
out = stdout.read().decode('utf-8', 'replace')
|
|
err = stderr.read().decode('utf-8', 'replace')
|
|
rc = stdout.channel.recv_exit_status()
|
|
return rc, out, err
|
|
|
|
rc, out, err = run(f'sudo -u postgres psql -d mall_db -v ON_ERROR_STOP=1 -f {REMOTE_SQL}')
|
|
print('--- psql stdout ---')
|
|
print(out)
|
|
if err.strip():
|
|
print('--- psql stderr ---')
|
|
print(err)
|
|
print(f'[exit={rc}]')
|
|
c.close()
|
|
sys.exit(rc)
|