37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
import sqlalchemy
|
|
import os
|
|
|
|
try:
|
|
os.mkdir('data')
|
|
except FileExistsError:
|
|
pass
|
|
engine = sqlalchemy.create_engine('sqlite:///data/data.db')
|
|
|
|
|
|
def init_db():
|
|
with engine.begin() as conn:
|
|
conn.execute(sqlalchemy.text(
|
|
'''
|
|
CREATE TABLE IF NOT EXISTS accounts (
|
|
api_key, PRIMARY KEY (api_key)
|
|
)
|
|
'''
|
|
))
|
|
conn.execute(sqlalchemy.text(
|
|
'''
|
|
CREATE TABLE IF NOT EXISTS links (
|
|
owner, link, redirect_link, expire_date,
|
|
FOREIGN KEY (owner) REFERENCES accounts(api_key), PRIMARY KEY (link)
|
|
)
|
|
'''
|
|
))
|
|
conn.execute(sqlalchemy.text(
|
|
'''
|
|
CREATE TABLE IF NOT EXISTS records (
|
|
owner, link, timestamp, ip, location, browser, os, user_agent, isp,
|
|
FOREIGN KEY (owner) REFERENCES links(owner),
|
|
FOREIGN KEY (link) REFERENCES links(link))
|
|
'''
|
|
))
|
|
|
|
conn.commit() |