Initial commit - existing project files
This commit is contained in:
commit
c49798a9ea
82 changed files with 4304 additions and 0 deletions
75
lib/archive-tables.py
Normal file
75
lib/archive-tables.py
Normal file
|
@ -0,0 +1,75 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os, sys
|
||||
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
from psycopg2 import connect
|
||||
|
||||
|
||||
# archive (copy & delete) all entries in app_order and app_registertransaction
|
||||
|
||||
timestamp = datetime.now().strftime("%Y-%m-%d-%H%M%S")
|
||||
|
||||
archive_folder = Path("./archive")
|
||||
orders_archive_path = archive_folder / ("orders-archive-" + timestamp + ".csv")
|
||||
transactions_archive_path = archive_folder / ("transactions-archive-" + timestamp + ".csv")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
exit_code = 0
|
||||
|
||||
try:
|
||||
|
||||
print(f"Starting archiving to {orders_archive_path.__str__()} and {transactions_archive_path.__str__()}...")
|
||||
|
||||
connection = connect(
|
||||
user = os.environ["PGDB_USER"],
|
||||
password = os.environ["PGDB_PASSWORD"],
|
||||
host = os.environ["PGDB_HOST"],
|
||||
port = os.environ["PGDB_PORT"],
|
||||
database = os.environ["PGDB_DB"]
|
||||
)
|
||||
|
||||
cur = connection.cursor()
|
||||
|
||||
|
||||
# # # # #
|
||||
|
||||
# copy
|
||||
|
||||
with orders_archive_path.open("w") as of:
|
||||
cur.copy_expert(
|
||||
"copy (select * from app_order) to STDOUT with csv delimiter ';'",
|
||||
of
|
||||
)
|
||||
|
||||
with transactions_archive_path.open("w") as tf:
|
||||
cur.copy_expert(
|
||||
"copy (select * from app_registertransaction) to STDOUT with csv delimiter ';'",
|
||||
tf
|
||||
)
|
||||
|
||||
# delete
|
||||
|
||||
cur.execute("delete from app_order;")
|
||||
cur.execute("delete from app_registertransaction;")
|
||||
connection.commit()
|
||||
|
||||
# # # # #
|
||||
|
||||
print("done.")
|
||||
|
||||
except (Error, Exception) as err:
|
||||
|
||||
connection.rollback()
|
||||
print(f"An error occured while upgrading the database at {os.environ['PGDB_HOST']}:\n{err}")
|
||||
exit_code = 1
|
||||
|
||||
finally:
|
||||
|
||||
cur.close()
|
||||
connection.close()
|
||||
exit(exit_code)
|
Loading…
Add table
Add a link
Reference in a new issue