43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
import sqlite3
|
|
|
|
def transform_database(db_path):
|
|
# Connect to the SQLite database
|
|
conn = sqlite3.connect(db_path)
|
|
cursor = conn.cursor()
|
|
|
|
# 1. Create the new table with the desired schema.
|
|
cursor.execute('''
|
|
CREATE TABLE IF NOT EXISTS file_access_log_new (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
timestamp TEXT,
|
|
rel_path TEXT,
|
|
ip_address TEXT,
|
|
user_agent TEXT,
|
|
device_id TEXT
|
|
)
|
|
''')
|
|
|
|
# 2. Copy data from the old table, applying the following transformations:
|
|
# - Rename full_path to rel_path and remove '/mnt/' from its entries.
|
|
# - Omit the referrer column.
|
|
# - Copy ip_address into the new device_id column.
|
|
cursor.execute('''
|
|
INSERT INTO file_access_log_new (id, timestamp, rel_path, ip_address, user_agent, device_id)
|
|
SELECT id, timestamp, REPLACE(full_path, '/mnt/', ''), ip_address, user_agent, ip_address
|
|
FROM file_access_log
|
|
''')
|
|
|
|
# 3. Drop the old table.
|
|
cursor.execute('DROP TABLE file_access_log')
|
|
|
|
# 4. Rename the new table to use the original table's name.
|
|
cursor.execute('ALTER TABLE file_access_log_new RENAME TO file_access_log')
|
|
|
|
# Commit the changes and close the connection.
|
|
conn.commit()
|
|
conn.close()
|
|
|
|
if __name__ == "__main__":
|
|
# Replace 'your_database.db' with the path to your SQLite database file.
|
|
transform_database("access_log.db")
|