[PYTHON] Ich habe Probleme beim Abrufen von "FEHLER: ALTER TABLE kann in einer schreibgeschützten Transaktion nicht ausgeführt werden" auf Heroku

Problem

Wenn ich versuche, eine Zeile mit Herokus "Heroku Postgres --Add-ons" hinzuzufügen, ärgere ich mich über "ERROR: ALTER TABLE kann in einer schreibgeschützten Transaktion nicht ausgeführt werden".

sql_test2.png

Lösung

Erstellen Sie eine Klasse, um von einem solchen Python aus auf die Postgres-Datenbank zuzugreifen.


import os
import psycopg2
import json
import pprint

class PostgreSql:
    def __init__(self):
        self.conn = self.get_connection()
        self.cur  = self.conn.cursor()

    ##############################################
    #DB-Verbindungserfassungsfunktion
    #
    def get_connection(self):
        dsn = "host=XXXXXXXXXXXXXX\
            port=XXXX \
            dbname=XXXXXXXXXX \
            user=XXXXXXXXX \
            password=XXXXXXXXXXXXXX"
        return psycopg2.connect(dsn)
    
    ##############################################
    #Funktion einfügen
    #
    def insert(self, sqlStr):
        self.cur.execute('BEGIN')
        self.cur.execute(sqlStr)
        self.cur.execute('COMMIT')

    ##############################################
    #Funktion zur Auswahl mit MySQL
    #
    def select(self,  sqlStr):
        self.cur.execute(sqlStr)
        return list(self.cur)

if __name__ == "__main__":

    psql = PostgreSql()

    ##############################################
    #Spalte hinzufügen
    #
    sql = "ALTER TABLE tbl_name ADD COLUMN category2 text;"
    psql.insert(sql)

Fügen wir eine Spalte mit der Einfügefunktion der von uns erstellten psql-Klasse hinzu! !!

    sql = "ALTER TABLE tbl_name ADD COLUMN category2 text;"
    psql.insert(sql)

Wenn es ausgewählt und im Heroku-Dashboard hinzugefügt wird, ist es fertig !!

sql_test.png

Dies ist die Lösung für "FEHLER: ALTER TABLE kann in einer schreibgeschützten Transaktion nicht ausgeführt werden".

Recommended Posts

Ich habe Probleme beim Abrufen von "FEHLER: ALTER TABLE kann in einer schreibgeschützten Transaktion nicht ausgeführt werden" auf Heroku
Ich habe Probleme, einen Unicode-Codierungsfehler auf jrnl (Python) auf Mac / Marvericks zu erhalten.