script crashes on last day of month but works every other day
Hi
I have this python script using mysql.connector
I am using a raspberry pi 4 and the db is MariaDB version 10.5.15
I hope this the right forum to ask this question so here goes.
#!/usr/bin/python3
### imports ###
import mysql.connector
import datetime
import schedule
import time
### connect to mysql ###
def check_date():
db = mysql.connector.connect(
host="localhost",
user="user",
password="hello",
database="there"
)
print("connect")
cursor = db.cursor()
sql = "(select count(*) from meter where date = current_date() + 1)"
cursor.execute(sql)
result = cursor.fetchone()
cursor.close()
today = result[0]
print("check")
print(today)
if today == 1:
db.close()
print("------------")
return
else:
mycursor = db.cursor()
sql = "insert into meter (date, water_in_lts, rain_gauge) Values (%s, %s, %s)"
val = (datetime.datetime.now() + datetime.timedelta(days=1), 0, 0)
mycursor.execute(sql, val)
db.commit()
print("insert")
check_date()
check_date()
schedule.every().day.at("00:01").do(check_date)
#schedule.every().minutes.do(check_date)
while True:
schedule.run_pending()
time.sleep(1)
Its purpose is to insert tomorrows date into my database so other scrips can then update other fields for the current day
This works fine on every day except the last day of the month in which it just crashes and burns.
looking at the logs it seems that it a MYSQL problem rather than python
the logs say that I have a duplicate entry for the date column
The script runs as a service and spends all of the last day of the month crashing but as soon as the date turn to the first of the next month it runs fine.
can any one see why this would happen?
Regards Neil
Subject
Written By
Posted
script crashes on last day of month but works every other day
May 01, 2022 07:25AM
Sorry, you can't reply to this topic. It has been closed.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion
of Oracle or any other party.