Add script to migrate from file to sqlite backend

This is the script I used to convert all existing media from the file
backend to the sqlite backend. I'm saving it for posterity.

It outputs shell commands to stdout, and SQL commands to stderr. These
can be piped to different files, examined, and run independently, e.g.

    $ ./file-to-sqlite.sh 1>files.sh 2>files.sql
    $ sh files.sh
    $ sqlite3 jukebox.sqlite3 files.sql
This commit is contained in:
Annika Backstrom 2019-12-17 13:50:11 -05:00
parent c0e2ab0129
commit 38f832e8d8

14
archive/file-to-sqlite.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
ls media/*\ -\ *.mp3 | while read line ; do
UUID=$(./jukebox/node_modules/.bin/uuid v4)
echo "mv \"$line\" \"media/$UUID\""
FILE=$(basename "$line" ".mp3")
set -- $FILE
TAG=${@:1:1}
LABEL=${@:3}
echo "INSERT INTO tags (tag) VALUES (\"$TAG\");" 1>>/dev/stderr;
echo "INSERT INTO library (tag, label, uuid) VALUES (\"$TAG\", \"$LABEL\", \"$UUID\");" 1>>/dev/stderr;
done