投稿

4月, 2019の投稿を表示しています

MySQL データベースのバックアップ

表のエクスポート MySQL で表を丸ごとファイルにエクスポートする場合は、SELECT * FROM table を応用した INTO OUTFILE file による指定が基本となる: SELECT * INTO OUTFILE '/mnt/data/tmp/sampletable.tsv' FROM Sample_Table; ファイル形式は TSV(TAB 区切りでエスケープ方式が TAB 区切り特有のルールとなっている。CSV よりも遥かにスマートなフォーマット) ファイルは上書き不可なので、既存の同名ファイルが存在してはならない。 参考: MySQL 8.0 リファレンス (出力先ファイル名や、表名などは一例) エクスポートした表のインポート 反対にエクスポートした表をデータベースにインポートして書き戻す場合は次の命令が対応する: LOAD DATA LOCAL INFILE '/mnt/data/tmp/sampletable.tsv' INTO TABLE Sample_Table; エクスポートしたファイルを編集してデータエントリーを付け加えてインポートし直すと、元から存在したエントリーについては warning となり skip されるだけなので、気にせずにエントリーの追加用途に利用できる。 また、一部エントリーを元のデータに追加するのではなく、元のデータを修正して上書き更新したい場合であれば、TRUNCATE 命令を使って一旦消去してから全体丸ごと LOAD し直せばよい: TRUNCATE TABLE Sample_Table; LOAD DATA LOCAL INFILE '/mnt/data/tmp/sampletable.tsv' INTO TABLE Sample_Table; 参考:SHOW WARNINGS LOAD の結果、追加したデータに何らかの不備があって WARNING が発生した場合は、直後に SHOW WARNINGS すれば WARNING 内容を確認することができる。 SHOW WARNINGS; データベースのバックアップ 表の定義を含めたデータベースのバックアップは mysqldump コマンドを使う。こ

Python で Google SpreadSheets を CSV にエクスポート

OAuth2 を含めた gspread の説明は公式のリファレンス(👉 1 、👉 2 )が参考になる。 また、CSV へのエクスポートについては Stack Overflow の記事(👉 Saving a google spreadsheet as a csv )を参考にした。 from oauth2client.service_account import ServiceAccountCredentials import gspread import csv JSON_KEYFILE = 'XXX.json' SPREADSHEET = 'テスト' WORKSHEET = 'sheet1' CSV_FILENAME = 'test.csv' SCOPE = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive'] serviceAccountCredentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEYFILE, SCOPE) gspreadClient = gspread.authorize(serviceAccountCredentials) worksheet = gspreadClient.open(SPREADSHEET).worksheet(WORKSHEET) with open(CSV_FILENAME, 'w', newline='') as csvFile: writer = csv.writer(csvFile) writer.writerows(worksheet.get_all_values())