Remove all cur, just use photodb.sql_execute.
This commit is contained in:
parent
2d5fb19ce7
commit
5f9627da61
1 changed files with 55 additions and 70 deletions
|
@ -11,8 +11,7 @@ def upgrade_1_to_2(photodb):
|
|||
track of the last time the photo's tags were edited (added or removed).
|
||||
'''
|
||||
photodb.sql_execute('BEGIN')
|
||||
cur = photodb.sql.cursor()
|
||||
cur.execute('ALTER TABLE photos ADD COLUMN tagged_at INT')
|
||||
photodb.sql_execute('ALTER TABLE photos ADD COLUMN tagged_at INT')
|
||||
|
||||
def upgrade_2_to_3(photodb):
|
||||
'''
|
||||
|
@ -21,8 +20,7 @@ def upgrade_2_to_3(photodb):
|
|||
Plus some indices.
|
||||
'''
|
||||
photodb.sql_execute('BEGIN')
|
||||
cur = photodb.sql.cursor()
|
||||
cur.execute('''
|
||||
photodb.sql_execute('''
|
||||
CREATE TABLE IF NOT EXISTS users(
|
||||
id TEXT,
|
||||
username TEXT COLLATE NOCASE,
|
||||
|
@ -30,25 +28,23 @@ def upgrade_2_to_3(photodb):
|
|||
created INT
|
||||
)
|
||||
''')
|
||||
cur.execute('CREATE INDEX IF NOT EXISTS index_user_id ON users(id)')
|
||||
cur.execute('CREATE INDEX IF NOT EXISTS index_user_username ON users(username COLLATE NOCASE)')
|
||||
photodb.sql_execute('CREATE INDEX IF NOT EXISTS index_user_id ON users(id)')
|
||||
photodb.sql_execute('CREATE INDEX IF NOT EXISTS index_user_username ON users(username COLLATE NOCASE)')
|
||||
|
||||
def upgrade_3_to_4(photodb):
|
||||
'''
|
||||
Add an `author_id` column to Photos.
|
||||
'''
|
||||
photodb.sql_execute('BEGIN')
|
||||
cur = photodb.sql.cursor()
|
||||
cur.execute('ALTER TABLE photos ADD COLUMN author_id TEXT')
|
||||
cur.execute('CREATE INDEX IF NOT EXISTS index_photo_author ON photos(author_id)')
|
||||
photodb.sql_execute('ALTER TABLE photos ADD COLUMN author_id TEXT')
|
||||
photodb.sql_execute('CREATE INDEX IF NOT EXISTS index_photo_author ON photos(author_id)')
|
||||
|
||||
def upgrade_4_to_5(photodb):
|
||||
'''
|
||||
Add table `bookmarks` and its indices.
|
||||
'''
|
||||
photodb.sql_execute('BEGIN')
|
||||
cur = photodb.sql.cursor()
|
||||
cur.execute('''
|
||||
photodb.sql_execute('''
|
||||
CREATE TABLE IF NOT EXISTS bookmarks(
|
||||
id TEXT,
|
||||
title TEXT,
|
||||
|
@ -56,8 +52,8 @@ def upgrade_4_to_5(photodb):
|
|||
author_id TEXT
|
||||
)
|
||||
''')
|
||||
cur.execute('CREATE INDEX IF NOT EXISTS index_bookmark_id ON bookmarks(id)')
|
||||
cur.execute('CREATE INDEX IF NOT EXISTS index_bookmark_author ON bookmarks(author_id)')
|
||||
photodb.sql_execute('CREATE INDEX IF NOT EXISTS index_bookmark_id ON bookmarks(id)')
|
||||
photodb.sql_execute('CREATE INDEX IF NOT EXISTS index_bookmark_author ON bookmarks(author_id)')
|
||||
|
||||
def upgrade_5_to_6(photodb):
|
||||
'''
|
||||
|
@ -75,38 +71,36 @@ def upgrade_5_to_6(photodb):
|
|||
# 1. Start the id_numbers.albums value at the tags value so that the number
|
||||
# can continue to increment safely and separately, instead of starting at
|
||||
# zero and bumping into existing albums.
|
||||
cur = photodb.sql.cursor()
|
||||
cur.execute('SELECT * FROM id_numbers WHERE tab == "tags"')
|
||||
last_id = cur.fetchone()[1]
|
||||
cur.execute('INSERT INTO id_numbers VALUES("albums", ?)', [last_id])
|
||||
last_id = photodb.sql_select_one('SELECT last_id FROM id_numbers WHERE tab == "tags"')[0]
|
||||
photodb.sql_execute('INSERT INTO id_numbers VALUES("albums", ?)', [last_id])
|
||||
|
||||
# 2. Now's a good chance to rename 'index_grouprel' to 'index_taggroup'.
|
||||
cur.execute('DROP INDEX IF EXISTS index_grouprel_parentid')
|
||||
cur.execute('DROP INDEX IF EXISTS index_grouprel_memberid')
|
||||
cur.execute('CREATE INDEX index_taggroup_parentid ON tag_group_rel(parentid)')
|
||||
cur.execute('CREATE INDEX index_taggroup_memberid ON tag_group_rel(memberid)')
|
||||
photodb.sql_execute('DROP INDEX IF EXISTS index_grouprel_parentid')
|
||||
photodb.sql_execute('DROP INDEX IF EXISTS index_grouprel_memberid')
|
||||
photodb.sql_execute('CREATE INDEX index_taggroup_parentid ON tag_group_rel(parentid)')
|
||||
photodb.sql_execute('CREATE INDEX index_taggroup_memberid ON tag_group_rel(memberid)')
|
||||
|
||||
# 3. All of the album group relationships need to be moved into their
|
||||
# own table, out of tag_group_rel
|
||||
cur.execute('CREATE TABLE album_group_rel(parentid TEXT, memberid TEXT)')
|
||||
cur.execute('CREATE INDEX index_albumgroup_parentid ON album_group_rel(parentid)')
|
||||
cur.execute('CREATE INDEX index_albumgroup_memberid ON album_group_rel(memberid)')
|
||||
cur.execute('SELECT id FROM albums')
|
||||
album_ids = [f[0] for f in cur.fetchall()]
|
||||
photodb.sql_execute('CREATE TABLE album_group_rel(parentid TEXT, memberid TEXT)')
|
||||
photodb.sql_execute('CREATE INDEX index_albumgroup_parentid ON album_group_rel(parentid)')
|
||||
photodb.sql_execute('CREATE INDEX index_albumgroup_memberid ON album_group_rel(memberid)')
|
||||
|
||||
album_ids = [row[0] for row in photodb.sql_select('SELECT id FROM albums')]
|
||||
for album_id in album_ids:
|
||||
cur.execute(
|
||||
'SELECT * FROM tag_group_rel WHERE parentid == ? OR memberid == ?',
|
||||
[album_id, album_id]
|
||||
)
|
||||
f = cur.fetchall()
|
||||
if f == []:
|
||||
query = 'SELECT * FROM tag_group_rel WHERE parentid == ? OR memberid == ?'
|
||||
bindings = [album_id, album_id]
|
||||
grouprels = list(photodb.sql_select(query, bindings))
|
||||
|
||||
if not grouprels:
|
||||
continue
|
||||
for grouprel in f:
|
||||
cur.execute('INSERT INTO album_group_rel VALUES(?, ?)', grouprel)
|
||||
cur.execute(
|
||||
'DELETE FROM tag_group_rel WHERE parentid == ? OR memberid == ?',
|
||||
[album_id, album_id]
|
||||
)
|
||||
|
||||
for grouprel in grouprels:
|
||||
photodb.sql_execute('INSERT INTO album_group_rel VALUES(?, ?)', grouprel)
|
||||
|
||||
query = 'DELETE FROM tag_group_rel WHERE parentid == ? OR memberid == ?'
|
||||
bindings = [album_id, album_id]
|
||||
photodb.sql_execute(query, bindings)
|
||||
|
||||
def upgrade_6_to_7(photodb):
|
||||
'''
|
||||
|
@ -118,50 +112,47 @@ def upgrade_6_to_7(photodb):
|
|||
which load from multiple directories.
|
||||
'''
|
||||
photodb.sql_execute('BEGIN')
|
||||
cur = photodb.sql.cursor()
|
||||
cur.execute('SELECT name FROM sqlite_master WHERE type == "index"')
|
||||
indices = [x[0] for x in cur.fetchall()]
|
||||
indices = photodb.sql_select('SELECT name FROM sqlite_master WHERE type == "index"')
|
||||
indices = [x[0] for x in indices]
|
||||
for index in indices:
|
||||
cur.execute('DROP INDEX %s' % index)
|
||||
photodb.sql_execute('DROP INDEX %s' % index)
|
||||
|
||||
cur.execute('''
|
||||
photodb.sql_execute('''
|
||||
CREATE TABLE album_associated_directories(
|
||||
albumid TEXT,
|
||||
directory TEXT COLLATE NOCASE
|
||||
)''')
|
||||
cur.execute('ALTER TABLE albums RENAME TO deleting_albums')
|
||||
cur.execute('''
|
||||
photodb.sql_execute('ALTER TABLE albums RENAME TO deleting_albums')
|
||||
photodb.sql_execute('''
|
||||
CREATE TABLE albums(
|
||||
id TEXT,
|
||||
title TEXT,
|
||||
description TEXT
|
||||
)''')
|
||||
cur.execute('INSERT INTO albums SELECT id, title, description FROM deleting_albums')
|
||||
cur.execute('''
|
||||
photodb.sql_execute('INSERT INTO albums SELECT id, title, description FROM deleting_albums')
|
||||
photodb.sql_execute('''
|
||||
INSERT INTO album_associated_directories
|
||||
SELECT id, associated_directory
|
||||
FROM deleting_albums
|
||||
WHERE associated_directory IS NOT NULL
|
||||
''')
|
||||
cur.execute('DROP TABLE deleting_albums')
|
||||
photodb.sql_execute('DROP TABLE deleting_albums')
|
||||
|
||||
def upgrade_7_to_8(photodb):
|
||||
'''
|
||||
Give the Tags table a description field.
|
||||
'''
|
||||
photodb.sql_execute('BEGIN')
|
||||
cur = photodb.sql.cursor()
|
||||
cur.execute('ALTER TABLE tags ADD COLUMN description TEXT')
|
||||
photodb.sql_execute('ALTER TABLE tags ADD COLUMN description TEXT')
|
||||
|
||||
def upgrade_8_to_9(photodb):
|
||||
'''
|
||||
Give the Photos table a searchhidden field.
|
||||
'''
|
||||
photodb.sql_execute('BEGIN')
|
||||
cur = photodb.sql.cursor()
|
||||
cur.execute('ALTER TABLE photos ADD COLUMN searchhidden INT')
|
||||
cur.execute('UPDATE photos SET searchhidden = 0')
|
||||
cur.execute('CREATE INDEX index_photos_searchhidden on photos(searchhidden)')
|
||||
photodb.sql_execute('ALTER TABLE photos ADD COLUMN searchhidden INT')
|
||||
photodb.sql_execute('UPDATE photos SET searchhidden = 0')
|
||||
photodb.sql_execute('CREATE INDEX index_photos_searchhidden on photos(searchhidden)')
|
||||
|
||||
def upgrade_9_to_10(photodb):
|
||||
'''
|
||||
|
@ -171,7 +162,6 @@ def upgrade_9_to_10(photodb):
|
|||
data_directory, reducing portability.
|
||||
'''
|
||||
photodb.sql_execute('BEGIN')
|
||||
cur = photodb.sql.cursor()
|
||||
photos = list(photodb.search(has_thumbnail=True, is_searchhidden=None))
|
||||
|
||||
# Since we're doing it all at once, I'm going to cheat and skip the
|
||||
|
@ -181,7 +171,7 @@ def upgrade_9_to_10(photodb):
|
|||
new_thumbnail_path = photo.make_thumbnail_filepath()
|
||||
new_thumbnail_path = new_thumbnail_path.absolute_path
|
||||
new_thumbnail_path = '.' + new_thumbnail_path.replace(thumbnail_dir, '')
|
||||
cur.execute('UPDATE photos SET thumbnail = ? WHERE id == ?', [new_thumbnail_path, photo.id])
|
||||
photodb.sql_execute('UPDATE photos SET thumbnail = ? WHERE id == ?', [new_thumbnail_path, photo.id])
|
||||
|
||||
def upgrade_10_to_11(photodb):
|
||||
'''
|
||||
|
@ -208,7 +198,7 @@ def upgrade_10_to_11(photodb):
|
|||
print('Renaming existing tables.')
|
||||
for table in tables_to_copy:
|
||||
statement = 'ALTER TABLE %s RENAME TO %s_old' % (table, table)
|
||||
cur.execute(statement)
|
||||
photodb.sql_execute(statement)
|
||||
|
||||
lines = [line.strip() for line in old_inits.V11.splitlines()]
|
||||
lines = [line for line in lines if not line.startswith('--')]
|
||||
|
@ -219,19 +209,18 @@ def upgrade_10_to_11(photodb):
|
|||
|
||||
print('Recreating tables.')
|
||||
for statement in create_tables:
|
||||
cur.execute(statement)
|
||||
photodb.sql_execute(statement)
|
||||
|
||||
print('Migrating table data.')
|
||||
for (table, select_columns) in tables_to_copy.items():
|
||||
statement = 'INSERT INTO %s SELECT %s FROM %s_old' % (table, select_columns, table)
|
||||
cur.execute(statement)
|
||||
photodb.sql_execute(statement)
|
||||
statement = 'DROP TABLE %s_old' % table
|
||||
cur.execute(statement)
|
||||
photodb.sql_execute(statement)
|
||||
|
||||
print('Recreating indices.')
|
||||
for statement in create_indices:
|
||||
cur.execute(statement)
|
||||
|
||||
photodb.sql_execute(statement)
|
||||
|
||||
def upgrade_11_to_12(photodb):
|
||||
'''
|
||||
|
@ -243,13 +232,12 @@ def upgrade_11_to_12(photodb):
|
|||
query = '''
|
||||
CREATE INDEX IF NOT EXISTS index_photo_tag_rel_photoid_tagid on photo_tag_rel(photoid, tagid)
|
||||
'''
|
||||
photodb.sql.cursor().execute(query)
|
||||
photodb.sql_execute(query)
|
||||
|
||||
def upgrade_12_to_13(photodb):
|
||||
'''
|
||||
Added display_name column to the User table.
|
||||
'''
|
||||
cur = photodb.sql.cursor()
|
||||
photodb.sql_execute('PRAGMA foreign_keys = OFF')
|
||||
photodb.sql_execute('BEGIN')
|
||||
photodb.sql_execute('ALTER TABLE users RENAME TO users_old')
|
||||
|
@ -261,8 +249,8 @@ def upgrade_12_to_13(photodb):
|
|||
display_name TEXT,
|
||||
created INT
|
||||
)''')
|
||||
cur.execute('INSERT INTO users SELECT id, username, password, NULL, created FROM users_old')
|
||||
cur.execute('DROP TABLE users_old')
|
||||
photodb.sql_execute('INSERT INTO users SELECT id, username, password, NULL, created FROM users_old')
|
||||
photodb.sql_execute('DROP TABLE users_old')
|
||||
|
||||
def upgrade_13_to_14(photodb):
|
||||
'''
|
||||
|
@ -280,10 +268,7 @@ def upgrade_all(data_directory):
|
|||
'''
|
||||
photodb = etiquette.photodb.PhotoDB(data_directory, create=False, skip_version_check=True)
|
||||
|
||||
cur = photodb.sql.cursor()
|
||||
|
||||
cur.execute('PRAGMA user_version')
|
||||
current_version = cur.fetchone()[0]
|
||||
current_version = photodb.sql_execute('PRAGMA user_version').fetchone()[0]
|
||||
needed_version = etiquette.constants.DATABASE_VERSION
|
||||
|
||||
if current_version == needed_version:
|
||||
|
|
Loading…
Reference in a new issue