Goのバックエンド用のテストデータを作成する際にYAML形式で書く必要があったので、既存のSQLからコンバートできる方法ないかなと探して見つかったのでメモします。
SQLからYAMLに限らず、Goの構造体とかその他言語で使うデータ型への変換などはなるべく手入力ではなく一括変換できる方法を探して効率良く時間を使いたいと思ってます。
今回見つけたページはこちらです。
(外部サイトを使用するのであくまでテストデータの変換のみに利用して、秘匿情報などは入力しない方が良いと思います)
SQLでCREATE文、INSERT文、SELECT文を入力するとSELECTの結果がYAML形式で出力されます。
自分の場合は先にデモデータ用のSQLがあったのでそのまま貼り付けました。
ちょっとインデントがずれていますが、想定通りYAML形式で出力されました。
SQLが先にあって、そのままYAML形式に変換したい時に重宝しそうです。
ちなみにYAML形式に変換したい理由はgo-testfixturesというライブラリを使ってYAMLファイルからテストデータをDBに格納しているためです。
こちらのライブラリを使うと以下のようにコードを書いてテストデータを準備できるので便利です。
fixtures, err := testfixtures.New( testfixtures.Database(db), // DBコネクション testfixtures.Dialect("mysql"), // RDBMSを指定 testfixtures.Directory("testdata/fixtures"), //テストデータ用のymlファイルがある場所を指定 )
テストデータをいろいろ準備してテストケースを増やしていきたいと思います。