第一次合并clean代码

This commit is contained in:
2025-01-18 17:09:51 +08:00
parent e33a8b069e
commit a0f5ca9a35
21 changed files with 2252 additions and 375 deletions

View File

@@ -0,0 +1,65 @@
# 脚本是为了将SQLite数据库中的数据迁移到MySQL数据库中。
# 专门针对使用sqlite阶段写的代码如果后续直接对Mysql做操作就不要用这个脚本
import sqlite3
import mysql.connector
TABLE_NAME = 'phosphorus_synthesis_info'
input('你确定TABLE_NAME是{}吗?'.format(TABLE_NAME))
# SQLite setup
sqlite_connection = sqlite3.connect('/home/ubuntu/workplace/LYT/llm-agent/phosphorus/doi_status.db') # Ensure this is your actual SQLite database file
sqlite_cursor = sqlite_connection.cursor()
# MySQL connection setup
mysql_connection = mysql.connector.connect(
host='100.84.94.73',
user='metadata_mat_papers',
password='siat-mic',
database='metadata_mat_papers'
)
mysql_cursor = mysql_connection.cursor()
# Define the SQLite query to retrieve data
sqlite_query = "SELECT doi, status, pdf_url FROM doi_status" # Ensure these field names match your SQLite table
# Function to check if a record exists in the MySQL database
def record_exists(doi, table_name):
query = f"SELECT COUNT(*) FROM `{table_name}` WHERE doi = %s"
mysql_cursor.execute(query, (doi,))
count = mysql_cursor.fetchone()[0]
return count > 0
# Function to update a record in the MySQL database
def update_record(doi, scihub_downlowded, pdf_url, table_name):
query = f"""
UPDATE `{table_name}`
SET scihub_downlowded = %s, pdf_url = %s
WHERE doi = %s
"""
mysql_cursor.execute(query, (scihub_downlowded, pdf_url, doi))
# Fetch data from SQLite
sqlite_cursor.execute(sqlite_query)
rows = sqlite_cursor.fetchall()
# Iterate over SQLite rows and update MySQL records
for row in rows:
doi, scihub_downlowded, pdf_url = row
if record_exists(doi, TABLE_NAME): # Replace with your actual MySQL table name
update_record(doi, scihub_downlowded, pdf_url, TABLE_NAME) # Adjust table name if necessary
else:
# You can choose to handle non-existent DOI entries differently if necessary
print(f"Record with DOI {doi} does not exist in MySQL database.")
# Commit the changes to the MySQL database
mysql_connection.commit()
# Close connections
sqlite_cursor.close()
sqlite_connection.close()
mysql_cursor.close()
mysql_connection.close()
print("Data migration from SQLite to MySQL completed successfully!")