Saya baru saja mulai menyelami pertanyaan mentah di Django.

Saya mencoba mengubah nama skema di postgres saya, tetapi kueri SQL saya tidak berfungsi

Inilah kode yang saya jalankan di django shell:

>>> from django.db import connection
>>> cursor = connection.cursor()
>>> query = "ALTER SCHEMA %s RENAME TO %s;"
>>> data = ('thor', 'thor1')
>>> cursor.execute(query, data)

Kesalahan:

django.db.utils.ProgrammingError: syntax error at or near "'thor'"
LINE 1: ALTER SCHEMA 'thor' RENAME TO 'thor1';

Saya percaya bahwa quotes itu adalah akar masalah saya.

Ada ide bagaimana saya bisa membuat ini bekerja?

1
Django DO 19 Maret 2020, 19:55

1 menjawab

Jawaban Terbaik

Tidak dapat menggunakan parameter kueri di sini karena mereka akan menambahkan tanda kutip tunggal yang tidak didukung oleh postgres.

Mencoba:

>>> from django.db import connection
>>> cursor = connection.cursor()
>>> data = ('thor', 'thor1')
>>> query = """ALTER SCHEMA %s RENAME TO %s;""" % data
>>> cursor.execute(query)
1
frozenOne 19 Maret 2020, 17:57