てきとう

ワーワーゆうとります

postgresのデータをmysqlに移行するよー

このダンプデータを元にmysqlで作ってね!って渡されたデータがpostgresだったので、あんまりポスグレ使ったことないんだよなぁと思いながら移行した手順のメモ。
欲しいのは中の1テーブルだけだったので簡単だった。

  • ポスグレにログインしてDB(hoge)作成
  • kore.dumpをhogeにインポート
psql -U {user} hoge < kore.dump
psql -U {user} hoge -c "SELECT * FROM hoshiitable" -A -F, > tomysql.csv
    • -cに出力したいクエリを指定
    • -Aは出力データの均等割り付けをしないオプション
    • -F{sep}はデータのセパレーターを指定できる(デフォルトは「|」)
  • mysqlにログイン。local infileがデフォルトでオフの設定なので、普通にログインしてlocal infileすると「ERROR 1148 (42000): The used command is not allowed with this MySQL version」って出ちゃうから、ログインするときに有効にしておく
mysql --local-infile=1
  • データベースとテーブルを作成してlocal infileでCSVファイルをインポートする。テーブルはpostgresの構成を見ながら自分で作る。なんかもっといい方法はありそうだよね〜と思いながら作る。
load data local infile "tomysql.csv" into table hoge fields terminated by ',' enclosed by '"';

わーいインポートできたよー