So geben Sie ein Schema in einem Befehl docmd.transferdatabase anPython

Python-Programme
Guest
 So geben Sie ein Schema in einem Befehl docmd.transferdatabase an

Post by Guest »

Ich schreibe ein Python -Skript, um MSaccess -Tabellen in Postgres zu kopieren. In diesem speziellen Fall versuche ich, das Schema anzugeben, das in die Postgres geladen wird. Der größte Code, den ich hier gefunden habe, lädt so nur in generischer Öffentlichkeit. Ich muss bestimmte Schemas laden. < /P>

Code: Select all

a = win32com.client.Dispatch("Access.Application")
a.OpenCurrentDatabase(db_path)

table_list = []

for table_info in cursor.tables(tableType='TABLE'):
table_list.append(table_info.table_name)

print (table_list)

for table in table_list:
logging.info(f"Exporting: {table}")

acExport = 1
acTable = 0

a.DoCmd.TransferDatabase(
acExport,
"ODBC Database",
"ODBC;DSN=PostgreSQL30;"
f"DATABASE={db_name};"
f"UID={pg_user};"
f"PWD={pg_pwd};"
f"Schema=Commercial;",
acTable,
f"{table}",
f"{table.lower()}"
)

logging.info(f"Finished Export of Table: {table}")
logging.info("Creating empty table in EGDB based off of this")
Mein Problem dabei ist, dass die Tabellen immer landen, obwohl ich Schema=Commercial und f"Commercial.{table.lower()}" ausprobiert habe im öffentlichen Schema. Wie kann ich dem Befehl mitteilen, in das richtige Schema zu exportieren?
Vielen Dank

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post