Add script file.
Initial commit of the script.
This commit is contained in:
parent
454bd870e1
commit
73ad6547a0
1 changed files with 70 additions and 0 deletions
70
convert.py
Normal file
70
convert.py
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
import mysql.connector
|
||||||
|
import sqlite3
|
||||||
|
|
||||||
|
# MySQL connection details
|
||||||
|
mysql_config = {
|
||||||
|
'user': 'your_mysql_username',
|
||||||
|
'password': 'your_mysql_password',
|
||||||
|
'host': 'your_mysql_host',
|
||||||
|
'database': 'your_mysql_database',
|
||||||
|
'port': 3306
|
||||||
|
}
|
||||||
|
|
||||||
|
# Connect to MySQL
|
||||||
|
mysql_conn = mysql.connector.connect(**mysql_config)
|
||||||
|
mysql_cursor = mysql_conn.cursor()
|
||||||
|
|
||||||
|
# Connect to SQLite
|
||||||
|
sqlite_conn = sqlite3.connect('output_database.sqlite')
|
||||||
|
sqlite_cursor = sqlite_conn.cursor()
|
||||||
|
|
||||||
|
# Get all tables from MySQL
|
||||||
|
mysql_cursor.execute("SHOW TABLES")
|
||||||
|
tables = mysql_cursor.fetchall()
|
||||||
|
|
||||||
|
for (table_name,) in tables:
|
||||||
|
# Get table schema from MySQL
|
||||||
|
mysql_cursor.execute(f"DESCRIBE {table_name}")
|
||||||
|
schema = mysql_cursor.fetchall()
|
||||||
|
|
||||||
|
# Create table in SQLite
|
||||||
|
columns = []
|
||||||
|
for column in schema:
|
||||||
|
col_name = column[0]
|
||||||
|
col_type = column[1]
|
||||||
|
|
||||||
|
# Convert MySQL data types to SQLite
|
||||||
|
if "int" in col_type:
|
||||||
|
sqlite_type = "INTEGER"
|
||||||
|
elif "char" in col_type or "text" in col_type:
|
||||||
|
sqlite_type = "TEXT"
|
||||||
|
elif "blob" in col_type:
|
||||||
|
sqlite_type = "BLOB"
|
||||||
|
elif "float" in col_type or "double" in col_type or "decimal" in col_type:
|
||||||
|
sqlite_type = "REAL"
|
||||||
|
elif "date" in col_type or "time" in col_type or "year" in col_type:
|
||||||
|
sqlite_type = "TEXT"
|
||||||
|
else:
|
||||||
|
sqlite_type = "TEXT"
|
||||||
|
|
||||||
|
columns.append(f"{col_name} {sqlite_type}")
|
||||||
|
|
||||||
|
columns_str = ", ".join(columns)
|
||||||
|
sqlite_cursor.execute(f"CREATE TABLE {table_name} ({columns_str})")
|
||||||
|
|
||||||
|
# Fetch data from MySQL table
|
||||||
|
mysql_cursor.execute(f"SELECT * FROM {table_name}")
|
||||||
|
rows = mysql_cursor.fetchall()
|
||||||
|
|
||||||
|
# Insert data into SQLite table
|
||||||
|
placeholders = ", ".join(["?" for _ in columns])
|
||||||
|
sqlite_cursor.executemany(f"INSERT INTO {table_name} VALUES ({placeholders})", rows)
|
||||||
|
sqlite_conn.commit()
|
||||||
|
|
||||||
|
# Close connections
|
||||||
|
mysql_cursor.close()
|
||||||
|
mysql_conn.close()
|
||||||
|
sqlite_cursor.close()
|
||||||
|
sqlite_conn.close()
|
||||||
|
|
||||||
|
print("Data has been successfully exported to SQLite.")
|
Loading…
Reference in a new issue