Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fukajun/8e0b45e8d68b228d24d18d66157c7202 to your computer and use it in GitHub Desktop.
Save fukajun/8e0b45e8d68b228d24d18d66157c7202 to your computer and use it in GitHub Desktop.

ざっくりapplyを実行したときに起きていること

  • gratanのコマンド本体は、 bin/gratan

  • apply の本体は、lib/gratan/client.rb にある Client#apply

  • 現在のユーザーやテーブルへの権限付与状態は、lib/gratan/exporter.rb にある、Exporter` が取得してきている。 client.rbにある walk_*で、Expoterが取得してきた現在の状態と、gratanの定義ファイルで指定されている内容を 比較してユーザー作成や権限付与を行っている。

  • Driver#updateで、実際のgrant文などのsqlを実行している。同時に、コマンド実行時のSQL表示も行っている。

  • dry-runのときは、SQLの表示のみ行って、実行自体はスキップしている。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment