sql >> データベース >  >> RDS >> PostgreSQL

コントローラー経由で返されるcsv形式のRailsrawクエリ

    copy_dataを使用する必要があります。 このための基盤となるPostgreSQLデータベース接続のメソッド:

    そして例さえあります:

    conn.copy_data "COPY my_table TO STDOUT CSV" do
      while row=conn.get_copy_data
        p row
      end
    end
    

    生のデータベース接続用のActiveRecordのラッパーは、 copy_dataが何であるかを認識していません ですが、 raw_connection 開封するには:

    conn = ActiveRecord::Base.connection.raw_connection
    csv  = [ ]
    conn.copy_data('copy stories to stdout with csv header') do
      while row = conn.get_copy_data
        csv.push(row)
      end
    end
    

    これにより、 csvにCSV文字列の配列が残ります。 (配列エントリごとに1つのCSV行)そして csv.join( "\ r \ n") 最終的なCSVデータを取得します。



    1. モデルの関係(Laravel 5.2)

    2. MySQL:毎日の合計

    3. OSX ld:-lsslのライブラリが見つかりません

    4. PHPでmysqlテーブルをロックする方法