Helper scripts : Addition of convert_db for bootstrap and changes in test_rebuild
This commit is contained in:
parent
d63495a878
commit
e93e0ae10d
43
convert_db.py
Normal file
43
convert_db.py
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
from models import SystemData, ActiveTable, ConsumedTable, TransferLogs, TransactionHistory, RejectedTransactionHistory, Base, ContractStructure, ContractBase, ContractParticipants, SystemBase, ActiveContracts, ContractAddressMapping, LatestCacheBase, ContractTransactionHistory, RejectedContractTransactionHistory, TokenContractAssociation, ContinuosContractBase, ContractStructure1, ContractParticipants1, ContractDeposits1, ContractTransactionHistory1, LatestTransactions, LatestBlocks, DatabaseTypeMapping, TokenAddressMapping
|
||||||
|
import pdb
|
||||||
|
from sqlalchemy import create_engine, func
|
||||||
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
|
||||||
|
|
||||||
|
def create_database_session_orm(type, parameters, base):
|
||||||
|
if type == 'token':
|
||||||
|
engine = create_engine(f"sqlite:///tokens/{parameters['token_name']}.db", echo=True)
|
||||||
|
base.metadata.create_all(bind=engine)
|
||||||
|
session = sessionmaker(bind=engine)()
|
||||||
|
|
||||||
|
elif type == 'smart_contract':
|
||||||
|
engine = create_engine(f"sqlite:///smartContracts/{parameters['contract_name']}-{parameters['contract_address']}.db", echo=True)
|
||||||
|
base.metadata.create_all(bind=engine)
|
||||||
|
session = sessionmaker(bind=engine)()
|
||||||
|
|
||||||
|
elif type == 'system_dbs':
|
||||||
|
engine = create_engine(f"sqlite:///{parameters['db_name']}.db", echo=False)
|
||||||
|
base.metadata.create_all(bind=engine)
|
||||||
|
session = sessionmaker(bind=engine)()
|
||||||
|
|
||||||
|
return session
|
||||||
|
|
||||||
|
|
||||||
|
# connect to the database convert_db
|
||||||
|
convert_db = create_database_session_orm('system_dbs', {'db_name': 'convertdb'}, LatestCacheBase)
|
||||||
|
latest_blocks = convert_db.query(LatestBlocks).all()
|
||||||
|
latest_txs = convert_db.query(LatestTransactions).all()
|
||||||
|
|
||||||
|
|
||||||
|
# create a new database convert_db_new
|
||||||
|
convert_db_1 = create_database_session_orm('system_dbs', {'db_name': 'latestCache'}, LatestCacheBase)
|
||||||
|
|
||||||
|
for block in latest_blocks:
|
||||||
|
convert_db_1.add(LatestBlocks(blockNumber=block.blockNumber, blockHash=block.blockHash, jsonData=block.jsonData))
|
||||||
|
|
||||||
|
for tx in latest_txs:
|
||||||
|
convert_db_1.add(LatestTransactions(transactionHash=tx.transactionHash, blockNumber=tx.blockNumber, jsonData=tx.jsonData, transactionType=tx.transactionType, parsedFloData=tx.parsedFloData))
|
||||||
|
|
||||||
|
convert_db_1.commit()
|
||||||
|
convert_db_1.close()
|
||||||
|
convert_db.close()
|
||||||
@ -1,6 +1,6 @@
|
|||||||
from sqlalchemy import create_engine, desc, func
|
from sqlalchemy import create_engine, desc, func
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
from models import SystemData, ActiveTable, ConsumedTable, TransferLogs, TransactionHistory, RejectedTransactionHistory, Base, ContractStructure, ContractBase, ContractParticipants, SystemBase, ActiveContracts, ContractAddressMapping, LatestCacheBase, ContractTransactionHistory, RejectedContractTransactionHistory, TokenContractAssociation, ContinuosContractBase, ContractStructure1, ContractParticipants1, ContractDeposits1, ContractTransactionHistory1, LatestTransactions, LatestBlocks, DatabaseTypeMapping
|
from models import SystemData, ActiveTable, ConsumedTable, TransferLogs, TransactionHistory, RejectedTransactionHistory, Base, ContractStructure, ContractBase, ContractParticipants, SystemBase, ActiveContracts, ContractAddressMapping, LatestCacheBase, ContractTransactionHistory, RejectedContractTransactionHistory, TokenContractAssociation, ContinuosContractBase, ContractStructure1, ContractParticipants1, ContractDeposits, ContractTransactionHistory1, LatestTransactions, LatestBlocks, DatabaseTypeMapping
|
||||||
import json
|
import json
|
||||||
from tracktokens_smartcontracts import processTransaction
|
from tracktokens_smartcontracts import processTransaction
|
||||||
import os
|
import os
|
||||||
@ -94,7 +94,8 @@ else:
|
|||||||
latestCache_session = create_database_session_orm('system_dbs', {'db_name':'latestCache'}, LatestCacheBase)
|
latestCache_session = create_database_session_orm('system_dbs', {'db_name':'latestCache'}, LatestCacheBase)
|
||||||
forward_block = int(latestCache_session.query(LatestBlocks.blockNumber).order_by(LatestBlocks.blockNumber.desc()).first()[0])
|
forward_block = int(latestCache_session.query(LatestBlocks.blockNumber).order_by(LatestBlocks.blockNumber.desc()).first()[0])
|
||||||
latestCache_session.close()
|
latestCache_session.close()
|
||||||
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
apppath = os.path.dirname(os.path.realpath(__file__))
|
apppath = os.path.dirname(os.path.realpath(__file__))
|
||||||
@ -178,6 +179,7 @@ latestCache_session.close()
|
|||||||
lblocks_dict = {}
|
lblocks_dict = {}
|
||||||
for block in lblocks:
|
for block in lblocks:
|
||||||
block_dict = block.__dict__
|
block_dict = block.__dict__
|
||||||
|
print(block_dict['blockNumber'])
|
||||||
lblocks_dict[block_dict['blockNumber']] = {'blockHash':f"{block_dict['blockHash']}", 'jsonData':f"{block_dict['jsonData']}"}
|
lblocks_dict[block_dict['blockNumber']] = {'blockHash':f"{block_dict['blockHash']}", 'jsonData':f"{block_dict['jsonData']}"}
|
||||||
|
|
||||||
# process and rebuild all transactions
|
# process and rebuild all transactions
|
||||||
@ -185,8 +187,11 @@ for transaction in ltransactions:
|
|||||||
transaction_dict = transaction.__dict__
|
transaction_dict = transaction.__dict__
|
||||||
transaction_data = json.loads(transaction_dict['jsonData'])
|
transaction_data = json.loads(transaction_dict['jsonData'])
|
||||||
parsed_flodata = json.loads(transaction_dict['parsedFloData'])
|
parsed_flodata = json.loads(transaction_dict['parsedFloData'])
|
||||||
block_info = json.loads(lblocks_dict[transaction_dict['blockNumber']]['jsonData'])
|
try:
|
||||||
processTransaction(transaction_data, parsed_flodata, block_info)
|
block_info = json.loads(lblocks_dict[transaction_dict['blockNumber']]['jsonData'])
|
||||||
|
processTransaction(transaction_data, parsed_flodata, block_info)
|
||||||
|
except:
|
||||||
|
continue
|
||||||
|
|
||||||
# copy the old block data
|
# copy the old block data
|
||||||
old_latest_cache = create_database_connection('system_dbs', {'db_name':'latestCache1'})
|
old_latest_cache = create_database_connection('system_dbs', {'db_name':'latestCache1'})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user