1
0
mirror of https://github.com/spl0k/supysonic.git synced 2024-12-22 17:06:17 +00:00

Switched from python to sql migration

This commit is contained in:
Taizo Simpson 2018-10-14 14:55:36 -04:00
parent c89395b220
commit f7dc6292fd
No known key found for this signature in database
GPG Key ID: D197B1197B2D4D68
9 changed files with 18 additions and 66 deletions

View File

@ -1,24 +0,0 @@
import argparse
from supysonic import db
try:
import MySQLdb as provider
except ImportError:
import pymysql as provider
parser = argparse.ArgumentParser()
parser.add_argument('username')
parser.add_argument('password')
parser.add_argument('database')
parser.add_argument('-H', '--host', default = 'localhost', help = 'default: localhost')
args = parser.parse_args()
with provider.connect(host = args.host, user = args.username, passwd = args.password, db = args.database) as conn:
c = conn.cursor()
c.execute('ALTER TABLE track ADD COLUMN has_art BOOLEAN NOT NULL DEFAULT false')
art = dict()
c.execute('SELECT path FROM track')
for row in c:
art[row[0]] = bool(db.Track._extract_cover_art(row[0].encode('utf-8')))
c.executemany('UPDATE track SET has_art=? WHERE path=?', [ (a, p) for p, a in art.items() ])
conn.commit()

View File

@ -0,0 +1,6 @@
START TRANSACTION;
ALTER TABLE track ADD has_art BOOLEAN DEFAULT false NOT NULL;
COMMIT;

View File

@ -1,21 +0,0 @@
import argparse
import psycopg2
from supysonic import db
parser = argparse.ArgumentParser()
parser.add_argument('username')
parser.add_argument('password')
parser.add_argument('database')
parser.add_argument('-H', '--host', default = 'localhost', help = 'default: localhost')
args = parser.parse_args()
with psycopg2.connect(host = args.host, user = args.username, password = args.password, dbname = args.database) as conn:
c = conn.cursor()
c.execute('ALTER TABLE track ADD COLUMN has_art BOOLEAN NOT NULL DEFAULT false')
art = dict()
c.execute('SELECT path FROM track')
for row in c.fetchall():
art[row[0]] = bool(db.Track._extract_cover_art(row[0].encode('utf-8')))
c.executemany('UPDATE track SET has_art=%s WHERE path=%s', [ (a, p) for p, a in art.items() ])
conn.commit()

View File

@ -0,0 +1,6 @@
START TRANSACTION;
ALTER TABLE track ADD has_art BOOLEAN DEFAULT false NOT NULL;
COMMIT;

View File

@ -1,18 +0,0 @@
import argparse
import sqlite3
from supysonic import db
parser = argparse.ArgumentParser()
parser.add_argument('dbfile', help = 'Path to the SQLite database file')
args = parser.parse_args()
with sqlite3.connect(args.dbfile) as conn:
c = conn.cursor()
c.execute('ALTER TABLE track ADD COLUMN has_art BOOLEAN NOT NULL DEFAULT false')
art = dict()
for row in c.execute('SELECT path FROM track'):
art[row[0]] = bool(db.Track._extract_cover_art(row[0].encode('utf-8')))
c.executemany('UPDATE track SET has_art=? WHERE path=?', [ (a, p) for p, a in art.items() ])
conn.commit()
conn.execute('VACUUM')

View File

@ -0,0 +1,3 @@
ALTER TABLE track ADD has_art BOOLEAN DEFAULT false NOT NULL;
COMMIT;

View File

@ -29,7 +29,7 @@ CREATE TABLE IF NOT EXISTS track (
year INTEGER, year INTEGER,
genre VARCHAR(256), genre VARCHAR(256),
duration INTEGER NOT NULL, duration INTEGER NOT NULL,
has_art BOOLEAN NOT NULL, has_art BOOLEAN NOT NULL DEFAULT false,
album_id BINARY(16) NOT NULL REFERENCES album, album_id BINARY(16) NOT NULL REFERENCES album,
artist_id BINARY(16) NOT NULL REFERENCES artist, artist_id BINARY(16) NOT NULL REFERENCES artist,
bitrate INTEGER NOT NULL, bitrate INTEGER NOT NULL,

View File

@ -29,7 +29,7 @@ CREATE TABLE IF NOT EXISTS track (
year INTEGER, year INTEGER,
genre VARCHAR(256), genre VARCHAR(256),
duration INTEGER NOT NULL, duration INTEGER NOT NULL,
has_art BOOLEAN NOT NULL, has_art BOOLEAN NOT NULL DEFAULT false,
album_id UUID NOT NULL REFERENCES album, album_id UUID NOT NULL REFERENCES album,
artist_id UUID NOT NULL REFERENCES artist, artist_id UUID NOT NULL REFERENCES artist,
bitrate INTEGER NOT NULL, bitrate INTEGER NOT NULL,

View File

@ -31,7 +31,7 @@ CREATE TABLE IF NOT EXISTS track (
year INTEGER, year INTEGER,
genre VARCHAR(256), genre VARCHAR(256),
duration INTEGER NOT NULL, duration INTEGER NOT NULL,
has_art BOOLEAN NOT NULL, has_art BOOLEAN NOT NULL DEFAULT false,
album_id CHAR(36) NOT NULL REFERENCES album, album_id CHAR(36) NOT NULL REFERENCES album,
artist_id CHAR(36) NOT NULL REFERENCES artist, artist_id CHAR(36) NOT NULL REFERENCES artist,
bitrate INTEGER NOT NULL, bitrate INTEGER NOT NULL,