def upgrade(ver, session): if ver is None: columns = table_columns('remember_rejected_entry', session) if 'uid' in columns: # Drop the old table log.info('Dropping old version of remember_rejected_entry table from db') drop_tables(['remember_rejected_entry'], session) # Create new table from the current model Base.metadata.create_all(bind=session.bind) # We go directly to version 2, as remember_rejected_entries table has just been made from current model # TODO: Fix this somehow. Just avoid dropping tables? ver = 3 else: ver = 0 if ver == 0: log.info('Adding reason column to remember_rejected_entry table.') table_add_column('remember_rejected_entry', 'reason', String, session) ver = 1 if ver == 1: log.info('Adding `added` column to remember_rejected_entry table.') table_add_column('remember_rejected_entry', 'added', DateTime, session, default=datetime.now) ver = 2 if ver == 2: log.info('Adding expires column to remember_rejected_entry table.') table_add_column('remember_rejected_entry', 'expires', DateTime, session) ver = 3 return ver
def upgrade(ver, session): if ver is None: columns = table_columns('remember_rejected_entry', session) if 'uid' in columns: # Drop the old table log.info( 'Dropping old version of remember_rejected_entry table from db' ) drop_tables(['remember_rejected_entry'], session) # Create new table from the current model Base.metadata.create_all(bind=session.bind) # We go directly to version 2, as remember_rejected_entries table has just been made from current model # TODO: Fix this somehow. Just avoid dropping tables? ver = 3 else: ver = 0 if ver == 0: log.info('Adding reason column to remember_rejected_entry table.') table_add_column('remember_rejected_entry', 'reason', String, session) ver = 1 if ver == 1: log.info('Adding `added` column to remember_rejected_entry table.') table_add_column('remember_rejected_entry', 'added', DateTime, session, default=datetime.now) ver = 2 if ver == 2: log.info('Adding expires column to remember_rejected_entry table.') table_add_column('remember_rejected_entry', 'expires', DateTime, session) ver = 3 return ver
def upgrade(ver, session): if ver is None: columns = table_columns('imdb_movies', session) if not 'photo' in columns: log.info('Adding photo column to imdb_movies table.') table_add_column('imdb_movies', 'photo', String, session) if not 'updated' in columns: log.info('Adding updated column to imdb_movies table.') table_add_column('imdb_movies', 'updated', DateTime, session) if not 'mpaa_rating' in columns: log.info('Adding mpaa_rating column to imdb_movies table.') table_add_column('imdb_movies', 'mpaa_rating', String, session) ver = 0 if ver == 0: # create indexes retrospectively (~r2563) log.info('Adding imdb indexes delivering up to 20x speed increase \o/ ...') indexes = [get_index_by_name(actors_table, 'ix_imdb_movie_actors'), get_index_by_name(genres_table, 'ix_imdb_movie_genres'), get_index_by_name(directors_table, 'ix_imdb_movie_directors')] for index in indexes: if index is None: log.critical('Index adding failure!') continue log.info('Creating index %s ...' % index.name) index.create(bind=session.connection()) ver = 1 if ver == 1: # http://flexget.com/ticket/1399 log.info('Adding prominence column to imdb_movie_languages table.') table_add_column('imdb_movie_languages', 'prominence', Integer, session) ver = 2 return ver
def upgrade(ver, session): if ver is None: columns = table_columns('imdb_movies', session) if not 'photo' in columns: log.info('Adding photo column to imdb_movies table.') table_add_column('imdb_movies', 'photo', String, session) if not 'updated' in columns: log.info('Adding updated column to imdb_movies table.') table_add_column('imdb_movies', 'updated', DateTime, session) if not 'mpaa_rating' in columns: log.info('Adding mpaa_rating column to imdb_movies table.') table_add_column('imdb_movies', 'mpaa_rating', String, session) ver = 0 if ver == 0: # create indexes retrospectively (~r2563) log.info('Adding imdb indexes delivering up to 20x speed increase \o/ ...') indexes = [get_index_by_name(actors_table, 'ix_imdb_movie_actors'), get_index_by_name(genres_table, 'ix_imdb_movie_genres'), get_index_by_name(languages_table, 'ix_imdb_movie_languages'), get_index_by_name(directors_table, 'ix_imdb_movie_directors')] for index in indexes: if index is None: log.critical('Index adding failure!') continue log.info('Creating index %s ...' % index.name) index.create(bind=session.connection()) ver = 1 return ver
def upgrade(ver, session): if ver is None: columns = table_columns("imdb_movies", session) if not "photo" in columns: log.info("Adding photo column to imdb_movies table.") table_add_column("imdb_movies", "photo", String, session) if not "updated" in columns: log.info("Adding updated column to imdb_movies table.") table_add_column("imdb_movies", "updated", DateTime, session) if not "mpaa_rating" in columns: log.info("Adding mpaa_rating column to imdb_movies table.") table_add_column("imdb_movies", "mpaa_rating", String, session) ver = 0 if ver == 0: # create indexes retrospectively (~r2563) log.info("Adding imdb indexes delivering up to 20x speed increase \o/ ...") indexes = [ get_index_by_name(actors_table, "ix_imdb_movie_actors"), get_index_by_name(genres_table, "ix_imdb_movie_genres"), get_index_by_name(languages_table, "ix_imdb_movie_languages"), get_index_by_name(directors_table, "ix_imdb_movie_directors"), ] for index in indexes: if index is None: log.critical("Index adding failure!") continue log.info("Creating index %s ..." % index.name) index.create(bind=session.connection()) ver = 1 return ver
def upgrade(ver, session): if ver is None: columns = table_columns('make_rss', session) if not 'rsslink' in columns: log.info('Adding rsslink column to table make_rss.') table_add_column('make_rss', 'rsslink', String, session) ver = 0 return ver
def upgrade(ver, session): if ver is None: columns = table_columns("make_rss", session) if not "rsslink" in columns: log.info("Adding rsslink column to table make_rss.") table_add_column("make_rss", "rsslink", String, session) ver = 0 return ver
def upgrade(ver, session): if ver is None: columns = table_columns('make_rss', session) if 'rsslink' not in columns: log.info('Adding rsslink column to table make_rss.') table_add_column('make_rss', 'rsslink', String, session) ver = 0 return ver
def upgrade(ver, session): if ver is None: columns = table_columns("thetvdb_favorites", session) if not "series_ids" in columns: # Drop the old table log.info("Dropping old version of thetvdb_favorites table from db") drop_tables(["thetvdb_favorites"], session) # Create new table from the current model Base.metadata.create_all(bind=session.bind) ver = 0 return ver
def upgrade(ver, session): if ver is None: columns = table_columns('thetvdb_favorites', session) if not 'series_ids' in columns: # Drop the old table log.info('Dropping old version of thetvdb_favorites table from db') drop_tables(['thetvdb_favorites'], session) # Create new table from the current model Base.metadata.create_all(bind=session.bind) ver = 0 return ver
def upgrade(ver, session): if ver is None: columns = table_columns('imdb_movies', session) if 'photo' not in columns: log.info('Adding photo column to imdb_movies table.') table_add_column('imdb_movies', 'photo', String, session) if 'updated' not in columns: log.info('Adding updated column to imdb_movies table.') table_add_column('imdb_movies', 'updated', DateTime, session) if 'mpaa_rating' not in columns: log.info('Adding mpaa_rating column to imdb_movies table.') table_add_column('imdb_movies', 'mpaa_rating', String, session) ver = 0 if ver == 0: # create indexes retrospectively (~r2563) log.info( 'Adding imdb indexes delivering up to 20x speed increase \o/ ...') indexes = [ get_index_by_name(actors_table, 'ix_imdb_movie_actors'), get_index_by_name(genres_table, 'ix_imdb_movie_genres'), get_index_by_name(directors_table, 'ix_imdb_movie_directors') ] for index in indexes: if index is None: log.critical('Index adding failure!') continue log.info('Creating index %s ...' % index.name) index.create(bind=session.connection()) ver = 1 if ver == 1: # http://flexget.com/ticket/1399 log.info('Adding prominence column to imdb_movie_languages table.') table_add_column('imdb_movie_languages', 'prominence', Integer, session) ver = 2 if ver == 2: log.info( 'Adding search result timestamp and clearing all previous results.' ) table_add_column('imdb_search', 'queried', DateTime, session) search_table = table_schema('imdb_search', session) session.execute(delete(search_table, search_table.c.fails)) ver = 3 if ver == 3: log.info( 'Adding original title column, cached data will not have this information' ) table_add_column('imdb_movies', 'original_title', Unicode, session) ver = 4 return ver
def upgrade(ver, session): if ver is None: columns = table_columns('imdb_movies', session) if not 'photo' in columns: log.info('Adding photo column to imdb_movies table.') table_add_column('imdb_movies', 'photo', String, session) if not 'updated' in columns: log.info('Adding updated column to imdb_movies table.') table_add_column('imdb_movies', 'updated', DateTime, session) if not 'mpaa_rating' in columns: log.info('Adding mpaa_rating column to imdb_movies table.') table_add_column('imdb_movies', 'mpaa_rating', String, session) ver = 0 if ver == 0: # create indexes retrospectively (~r2563) log.info( 'Adding imdb indexes delivering up to 20x speed increase \o/ ...') indexes = [ get_index_by_name(actors_table, 'ix_imdb_movie_actors'), get_index_by_name(genres_table, 'ix_imdb_movie_genres'), get_index_by_name(directors_table, 'ix_imdb_movie_directors') ] for index in indexes: if index is None: log.critical('Index adding failure!') continue log.info('Creating index %s ...' % index.name) index.create(bind=session.connection()) ver = 1 if ver == 1: # http://flexget.com/ticket/1399 log.info('Adding prominence column to imdb_movie_languages table.') table_add_column('imdb_movie_languages', 'prominence', Integer, session) ver = 2 if ver == 2: log.info( 'Adding search result timestamp and clearing all previous results.' ) table_add_column('imdb_search', 'queried', DateTime, session) search_table = table_schema('imdb_search', session) session.execute(delete(search_table, search_table.c.fails)) ver = 3 if ver == 3: log.info( 'Adding original title column, cached data will not have this information' ) table_add_column('imdb_movies', 'original_title', Unicode, session) ver = 4 return ver
def upgrade(ver, session): if ver is None: columns = table_columns('imdb_movies', session) if not 'photo' in columns: log.info('Adding photo column to imdb_movies table.') table_add_column('imdb_movies', 'photo', String, session) if not 'updated' in columns: log.info('Adding updated column to imdb_movies table.') table_add_column('imdb_movies', 'updated', DateTime, session) if not 'mpaa_rating' in columns: log.info('Adding mpaa_rating column to imdb_movies table.') table_add_column('imdb_movies', 'mpaa_rating', String, session) ver = 0 return ver
def upgrade(ver, session): if ver is None: columns = table_columns('remember_rejected_entry', session) if 'uid' in columns: raise db_schema.UpgradeImpossible ver = 0 if ver == 0: log.info('Adding reason column to remember_rejected_entry table.') table_add_column('remember_rejected_entry', 'reason', String, session) ver = 1 if ver == 1: log.info('Adding `added` column to remember_rejected_entry table.') table_add_column('remember_rejected_entry', 'added', DateTime, session, default=datetime.now) ver = 2 if ver == 2: log.info('Adding expires column to remember_rejected_entry table.') table_add_column('remember_rejected_entry', 'expires', DateTime, session) ver = 3 return ver
def upgrade(ver, session): if ver is None: columns = table_columns("remember_rejected_entry", session) if "uid" in columns: raise db_schema.UpgradeImpossible ver = 0 if ver == 0: log.info("Adding reason column to remember_rejected_entry table.") table_add_column("remember_rejected_entry", "reason", String, session) ver = 1 if ver == 1: log.info("Adding `added` column to remember_rejected_entry table.") table_add_column("remember_rejected_entry", "added", DateTime, session, default=datetime.now) ver = 2 if ver == 2: log.info("Adding expires column to remember_rejected_entry table.") table_add_column("remember_rejected_entry", "expires", DateTime, session) ver = 3 return ver
def upgrade(ver, session): if ver is None: if table_exists('episode_qualities', session): log.info('Series database format is too old to upgrade, dropping and recreating tables.') # Drop the deprecated data drop_tables(['series', 'series_episodes', 'episode_qualities'], session) # Create new tables from the current models Base.metadata.create_all(bind=session.bind) # Upgrade episode_releases table to have a proper count and seed it with appropriate numbers columns = table_columns('episode_releases', session) if not 'proper_count' in columns: log.info('Upgrading episode_releases table to have proper_count column') table_add_column('episode_releases', 'proper_count', Integer, session) release_table = table_schema('episode_releases', session) for row in session.execute(select([release_table.c.id, release_table.c.title])): # Recalculate the proper_count from title for old episodes proper_count = len([part for part in re.split('[\W_]+', row['title'].lower()) if part in SeriesParser.propers]) session.execute(update(release_table, release_table.c.id == row['id'], {'proper_count': proper_count})) ver = 0 if ver == 0: log.info('Migrating first_seen column from series_episodes to episode_releases table.') # Create the column in episode_releases table_add_column('episode_releases', 'first_seen', DateTime, session) # Seed the first_seen value for all the past releases with the first_seen of their episode. episode_table = table_schema('series_episodes', session) release_table = table_schema('episode_releases', session) for row in session.execute(select([episode_table.c.id, episode_table.c.first_seen])): session.execute(update(release_table, release_table.c.episode_id == row['id'], {'first_seen': row['first_seen']})) ver = 1 if ver == 1: log.info('Adding `identified_by` column to series table.') table_add_column('series', 'identified_by', String, session) ver = 2 if ver == 2: release_table = table_schema('episode_releases', session) log.info('Creating index on episode_releases table.') Index('ix_episode_releases_episode_id', release_table.c.episode_id).create(bind=session.bind) ver = 3 return ver