diff --git a/migration.py b/migration.py new file mode 100644 index 0000000..abe9eba --- /dev/null +++ b/migration.py @@ -0,0 +1,83 @@ +"""Create the necessary tables in an SQLite database""" + + +import sqlite3 + + +def connect_db(): + return sqlite3.connect('database/database.sqlite') + + +def create_user_table(): + query = """ + create table if not exists users ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT, + email TEXT, + username TEXT NOT NULL UNIQUE, + password TEXT NOT NULL, + created_on TEXT default CURRENT_TIMESTAMP, + active BOOLEAN default TRUE + ) + """ + + try: + connection = connect_db() + connection.execute(query) + connection.commit() + except Exception as e: + print("Error creating users table", e) + return False + + return True + + +def create_keys_table(): + query = """ + create table if not exists keys ( + user_id INTEGER, + encryption_key TEXT, + encryption_key_salt TEXT, + FOREIGN KEY (user_id) REFERENCES users (id) + ON DELETE CASCADE + ) + """ + try: + connection = connect_db() + connection.execute(query) + connection.commit() + except Exception as e: + print("Error creating keys table", e) + return False + + return True + + +def create_secrets_table(): + query = """ + create table if not exists secrets ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER, + data TEXT NOT NULL, + added_on TEXT DEFAULT CURRENT_TIMESTAMP, + modified_on TEXT, + active BOOLEAN DEFAULT TRUE, + FOREIGN KEY (user_id) REFERENCES users(id) + ON DELETE CASCADE + ) + """ + try: + connection = connect_db() + connection.execute(query) + connection.commit() + except Exception as e: + print("Error creating secrets tabe", e) + return False + + return True + + +if __name__ == '__main__': + create_user_table() + create_keys_table() + create_secrets_table() \ No newline at end of file