53 lines
1.2 KiB
Python
53 lines
1.2 KiB
Python
"""
|
|
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
|