""" This module contains a Caribou migration. Migration Name: user_external_auth Migration Version: 20250112153541 """ def upgrade(connection): """ - delete access_token, refresh_token, and expires_at from users - add external_auth table which will store the external auths: - type: twitch or discord - credentials: JSON """ sql = """ ALTER TABLE users DROP COLUMN access_token; """ connection.execute(sql) sql = """ ALTER TABLE users DROP COLUMN refresh_token; """ connection.execute(sql) sql = """ ALTER TABLE users DROP COLUMN expires_at; """ connection.execute(sql) sql = """ CREATE TABLE external_auth( id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, type VARCHAR(255) NOT NULL, credentials JSON NOT NULL ); """ connection.execute(sql) sql = """ CREATE TABLE user_external_auth( user_id VARCHAR(255) NOT NULL, external_auth_id INTEGER NOT NULL, FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (external_auth_id) REFERENCES external_auth(id) ); """ connection.execute(sql) connection.commit() def downgrade(connection): # add your downgrade step here pass