Rails, PostgreSQL: rails console --sandboxを起動しているとき、DBはどうなっているか。
コンソールをサンドボックスモードで起動したとき、データベースへの操作がデータベース上で確認出来ないので調べてみました。
結論
サンドボックスモードではコンソールが一つの大きなトランザクションとして振る舞う。なのでコンソール内でしか作成したインサートをみることができない。
コンソール以外の方法でデータベースに接続しているとき(pgAdminⅢなど)、 コンソールがやっていることはまだコミットされていないので、コンソール以外の接続からは隠されている。
ある接続がトランザクションを使用してデータベースと対話しているときは、他のデータベースへの接続は、コミットがなされるまでどんなデータベースの変化も見ることができない。トランザクションを使用している接続(この場合サンドボックスモードのコンソール)だけが、 ロールバック前のデータベースの変化を見ることが出来る。
リンク:
引用元:
関連:
PostgreSQLについて
rails consoleについて
- そもそも、Railsのrails consoleコマンドとは?? / チュパカブラの勉強日記
- ~ Kartz On Tech ~: Rails 3 and its Sandbox (--sandboxで起動しているときは、マイグレーションが実行出来ないという話。)