python資料庫遷移指令碼

2021-07-29 22:04:32 字數 1510 閱讀 2576

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import json

from sqlalchemy import *

engine = create_engine('postgresql:')

metadata = metadata(engine)

# t_batch_copy表示新版的批次表

t_batch = table('t_batch', metadata, autoload=true)

# t_exchange_code_copy表示新版的兌換碼表

t_exchange_code = table('t_exchange', metadata, autoload=true)

# 初始化插入資料物件

t_batch_insert = t_batch.insert()

t_exchange_code_insert = t_exchange_code.insert()

# 讀取老版的批次表的json資料

with

open('redeem_lot.json', 'r') as f:

data = json.load(f)

# 獲取到鍵值對的關係資料,其中的status欄位預設需要確定(現填寫為1)

messages = data["records"]

for batch in messages:

count = 0

result = t_batch_insert.execute(id=batch["id"],

batch_name=batch["title"],

op_user=batch["user"],

effect_time=batch["created_time"],

invalid_time=batch["deadline"],

exchange_code_count=batch["number"],

status=1,

batch_desc=batch["note"])

# 讀取老版的兌換碼的json資料

with

open('redeem_code.json', 'r') as f:

data = json.load(f)

# 獲取到鍵值對的關係資料

messages = data["records"]

for code in messages:

count1 = 0

result1 = t_exchange_code_insert.execute(id=code["id"],

exchange_code=code["code"],

batch_id=code["redeemlot_id"],

status=code["status"],

using_time=code["use_time"],

create_time=code["created_time"],)

python 資料庫遷移

匯入mysql庫的方法常用的有 pymysql中使用游標 適用於固定物件的單次或批量插入 sqlalchemy結合pandas實現 適用於將sql查詢結果插入庫表,可以限制index。1 pymysql模組 import pandas as pd import pymysql conn mysql ...

python遷移redis資料庫

python遷移redis資料庫 python3遷移redis資料庫,注意資料寫入後的編碼問題。usr bin python3 coding utf 8 import redis redis 1 redis.strictredis host 192.168.2.3 port 6379 passwor...

phinx資料庫指令碼遷移環境配置

phinx資料庫指令碼遷移環境配置 環境 environments default migration table phinxlog default database development localhost adapter mysql host localhost name dev user r...