mirror of
https://github.com/morpheus65535/bazarr.git
synced 2025-04-24 06:37:16 -04:00
Fixed removal of rowid column while preventing the lost of history or blacklist data.
This commit is contained in:
parent
164dc95f23
commit
e0e5daea1d
1 changed files with 66 additions and 5 deletions
|
@ -8,6 +8,8 @@ Create Date: 2023-07-27 13:14:08.825037
|
|||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
from app.database import TableHistory, TableHistoryMovie, TableBlacklist, TableBlacklistMovie, select
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '195144da1f7e'
|
||||
|
@ -18,6 +20,7 @@ depends_on = None
|
|||
bind = op.get_context().bind
|
||||
insp = sa.inspect(bind)
|
||||
tables = insp.get_table_names()
|
||||
sqlite = bind.engine.name == 'sqlite'
|
||||
|
||||
|
||||
def column_exists(table_name, column_name):
|
||||
|
@ -26,13 +29,71 @@ def column_exists(table_name, column_name):
|
|||
|
||||
|
||||
def upgrade():
|
||||
with op.batch_alter_table('table_episodes') as batch_op:
|
||||
if column_exists('table_episodes', 'rowid'):
|
||||
batch_op.drop_column(column_name='rowid')
|
||||
if column_exists('table_episodes', 'rowid'):
|
||||
if sqlite:
|
||||
table_history_data = [{
|
||||
"id": x.id,
|
||||
"action": x.action,
|
||||
"description": x.description,
|
||||
"language": x.language,
|
||||
"provider": x.provider,
|
||||
"score": x.score,
|
||||
"sonarrEpisodeId": x.sonarrEpisodeId,
|
||||
"sonarrSeriesId": x.sonarrSeriesId,
|
||||
"subs_id": x.subs_id,
|
||||
"subtitles_path": x.subtitles_path,
|
||||
"timestamp": x.timestamp,
|
||||
"video_path": x.video_path,
|
||||
"matched": x.matched,
|
||||
"not_matched": x.not_matched,
|
||||
} for x in bind.execute(select(TableHistory)).all()]
|
||||
|
||||
with op.batch_alter_table('table_movies') as batch_op:
|
||||
if column_exists('table_movies', 'rowid'):
|
||||
table_blacklist_data = [{
|
||||
"id": x.id,
|
||||
"language": x.language,
|
||||
"provider": x.provider,
|
||||
"sonarr_episode_id": x.sonarr_episode_id,
|
||||
"sonarr_series_id": x.sonarr_series_id,
|
||||
"subs_id": x.subs_id,
|
||||
"timestamp": x.timestamp,
|
||||
} for x in bind.execute(select(TableBlacklist)).all()]
|
||||
with op.batch_alter_table('table_episodes') as batch_op:
|
||||
batch_op.drop_column(column_name='rowid')
|
||||
if sqlite:
|
||||
op.bulk_insert(TableHistory.__table__, rows=table_history_data)
|
||||
op.bulk_insert(TableBlacklist.__table__, rows=table_blacklist_data)
|
||||
|
||||
if column_exists('table_movies', 'rowid'):
|
||||
if sqlite:
|
||||
table_history_movie_data = [{
|
||||
"id": x.id,
|
||||
"action": x.action,
|
||||
"description": x.description,
|
||||
"language": x.language,
|
||||
"provider": x.provider,
|
||||
"radarrId": x.radarrId,
|
||||
"score": x.score,
|
||||
"subs_id": x.subs_id,
|
||||
"subtitles_path": x.subtitles_path,
|
||||
"timestamp": x.timestamp,
|
||||
"video_path": x.video_path,
|
||||
"matched": x.matched,
|
||||
"not_matched": x.not_matched,
|
||||
} for x in bind.execute(select(TableHistoryMovie)).all()]
|
||||
|
||||
table_blacklist_movie_data = [{
|
||||
"id": x.id,
|
||||
"language": x.language,
|
||||
"provider": x.provider,
|
||||
"radarr_id": x.radarr_id,
|
||||
"subs_id": x.subs_id,
|
||||
"timestamp": x.timestamp,
|
||||
} for x in bind.execute(select(TableBlacklistMovie)).all()]
|
||||
with op.batch_alter_table('table_movies') as batch_op:
|
||||
batch_op.drop_column(column_name='rowid')
|
||||
if sqlite:
|
||||
op.bulk_insert(TableHistoryMovie.__table__, rows=table_history_movie_data)
|
||||
op.bulk_insert(TableBlacklistMovie.__table__, rows=table_blacklist_movie_data)
|
||||
|
||||
if 'table_custom_score_profile_conditions' in tables:
|
||||
op.drop_table('table_custom_score_profile_conditions')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue