add migrate12to13 script
This commit is contained in:
parent
63fb39016b
commit
822f0c3cb2
3 changed files with 83 additions and 1 deletions
|
@ -49,7 +49,7 @@ class DatabaseComponent(Component):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_current_db_revision():
|
def get_current_db_revision():
|
||||||
return 12
|
return 13
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def revision_filename(self):
|
def revision_filename(self):
|
||||||
|
|
|
@ -31,6 +31,8 @@ def migrate_db(conf, start, end):
|
||||||
from .migrate10to11 import do_migration
|
from .migrate10to11 import do_migration
|
||||||
elif current == 11:
|
elif current == 11:
|
||||||
from .migrate11to12 import do_migration
|
from .migrate11to12 import do_migration
|
||||||
|
elif current == 12:
|
||||||
|
from .migrate12to13 import do_migration
|
||||||
else:
|
else:
|
||||||
raise Exception(f"DB migration of version {current} to {current+1} is not available")
|
raise Exception(f"DB migration of version {current} to {current+1} is not available")
|
||||||
try:
|
try:
|
||||||
|
|
80
lbry/lbry/extras/daemon/migrator/migrate12to13.py
Normal file
80
lbry/lbry/extras/daemon/migrator/migrate12to13.py
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
import os
|
||||||
|
import sqlite3
|
||||||
|
|
||||||
|
|
||||||
|
def do_migration(conf):
|
||||||
|
db_path = os.path.join(conf.data_dir, "lbrynet.sqlite")
|
||||||
|
connection = sqlite3.connect(db_path)
|
||||||
|
cursor = connection.cursor()
|
||||||
|
|
||||||
|
current_columns = []
|
||||||
|
for col_info in cursor.execute("pragma table_info('file');").fetchall():
|
||||||
|
current_columns.append(col_info[1])
|
||||||
|
if 'bt_infohash' in current_columns:
|
||||||
|
connection.close()
|
||||||
|
print("already migrated")
|
||||||
|
return
|
||||||
|
|
||||||
|
cursor.executescript("""
|
||||||
|
pragma foreign_keys=off;
|
||||||
|
|
||||||
|
create table if not exists torrent (
|
||||||
|
bt_infohash char(20) not null primary key,
|
||||||
|
tracker text,
|
||||||
|
length integer not null,
|
||||||
|
name text not null
|
||||||
|
);
|
||||||
|
|
||||||
|
create table if not exists torrent_node ( -- BEP-0005
|
||||||
|
bt_infohash char(20) not null references torrent,
|
||||||
|
host text not null,
|
||||||
|
port integer not null
|
||||||
|
);
|
||||||
|
|
||||||
|
create table if not exists torrent_tracker ( -- BEP-0012
|
||||||
|
bt_infohash char(20) not null references torrent,
|
||||||
|
tracker text not null
|
||||||
|
);
|
||||||
|
|
||||||
|
create table if not exists torrent_http_seed ( -- BEP-0017
|
||||||
|
bt_infohash char(20) not null references torrent,
|
||||||
|
http_seed text not null
|
||||||
|
);
|
||||||
|
|
||||||
|
create table if not exists new_file (
|
||||||
|
stream_hash char(96) references stream,
|
||||||
|
bt_infohash char(20) references torrent,
|
||||||
|
file_name text,
|
||||||
|
download_directory text,
|
||||||
|
blob_data_rate real not null,
|
||||||
|
status text not null,
|
||||||
|
saved_file integer not null,
|
||||||
|
content_fee text,
|
||||||
|
added_on integer not null
|
||||||
|
);
|
||||||
|
|
||||||
|
create table if not exists new_content_claim (
|
||||||
|
stream_hash char(96) references stream,
|
||||||
|
bt_infohash char(20) references torrent,
|
||||||
|
claim_outpoint text unique not null references claim
|
||||||
|
);
|
||||||
|
|
||||||
|
insert into new_file (stream_hash, bt_infohash, file_name, download_directory, blob_data_rate, status,
|
||||||
|
saved_file, content_fee, added_on) select
|
||||||
|
stream_hash, NULL, file_name, download_directory, blob_data_rate, status, saved_file, content_fee,
|
||||||
|
added_on
|
||||||
|
from file;
|
||||||
|
|
||||||
|
insert into new_content_claim (stream_hash, bt_infohash, claim_outpoint)
|
||||||
|
select stream_hash, NULL, claim_outpoint from content_claim;
|
||||||
|
|
||||||
|
drop table file;
|
||||||
|
drop table content_claim;
|
||||||
|
alter table new_file rename to file;
|
||||||
|
alter table new_content_claim rename to content_claim;
|
||||||
|
|
||||||
|
pragma foreign_keys=on;
|
||||||
|
""")
|
||||||
|
|
||||||
|
connection.commit()
|
||||||
|
connection.close()
|
Loading…
Reference in a new issue