問題タブ [rails-postgresql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - PostgreSQL クエリが VM を飲み込んでいる
[処方箋: ここに書かれていることが Delayed::Job に固有のものではないことはわかっています。しかし、それは文脈を確立するのに役立ちます.]
アップデート
SQL クエリがガベージ コレクションされていないと思います。私のアプリケーションは、多数の大きな SQL 挿入/更新操作 (それぞれ 160K バイト、1 秒あたり約 1 回) を生成し、次の方法で PostgreSQL に送信します。
これらのデータベース操作を実行すると、アプリケーションは際限なくゆっくりと成長します。データベース操作をスタブ化すると (ただし、アプリで他のすべての機能を実行すると)、肥大化は停止します。
だから:なぜこれが起こっているのか、どうやってそれを特定できるのか、どうすればそれを止めることができるのかについてのアイデアはありますか?
元の質問
Web からデータを盗み出し、PostgreSQL データベースにレコードを作成するタスクを遅らせました。それらは正常に動作しているように見えますが、vmemsize=100M から開始し、10 分以内に vmemsize=500M にバルクアップし、成長を続けています。VM が不足すると、8G の RAM を搭載した MacBook Pro がスラッシングを開始します。
メモリの移動先を見つけるにはどうすればよいですか?
このトピックに関する他のSOの投稿を紹介する前に:
#after(job) メソッドに以下を追加しました。
基本クラスの使用状況を報告し、ActiveRecord::Relation オブジェクトを明示的にリセットし (この SO 投稿で提案)、明示的に GC を実行し (この SO 投稿で提案)、オブジェクト / 文字列 / 配列 / ハッシュなどの数を報告します。あります(このSO投稿で示唆されているように)。価値があるのは、これらのクラスのどれも大幅に成長していないということです。(私が見るべき他のクラスはありますか?しかし、とにかくそれはオブジェクトの数に反映されませんか?)
Ruby 1.9 を実行しているため、memprofを使用できません。
また、Linux で実行している場合に検討したいツールは他にもありますが、私は OS X を使用しています。
ruby-on-rails-3 - rake db:structure:load で構造を読み込もうとしているときにエラーが発生しました。「schema_migration」は存在しません
実行してrake db:structure:load
いますが、すべての構造をロードした後、schema_migrations にバージョンを挿入できません。
PostgreSQL は最近作成されたテーブルを認識していないようです。すでにグーグルで検索しましたが、役立つものは何も見つかりませんでした。
ruby-on-rails - Postgres + Heroku Ruby Creation
Herokuで正常に実行されているアプリがあり、Carrierwaveを使用してアプリをAmazonのS3サービスに接続しようとしています。設定ファイルはすべてすべて機能していると思いましたが、画像インスタンスを作成しているときに問題が発生しました。Postgresとその特定のフォーマットなどのいくつかに関係していると思いますが、ここが主な問題です。
TypeError (can't convert nil into String):
データベースへのPOSTのように見えるもの(特にcreateメソッド)を取得しています。エラーは次のようになります。
POSTの開始も次のとおりです。
ここでの問題は、nilのフィールドがある場合にPostgresがPOSTの開始を許可しないことだと思います。奇妙なことに、sqliteはこれでうまく機能します。そのため、問題はPostgresであると推測していますが、残念ながら、本番環境ではPostgresを使用します。私はこの問題を本当に絞り込むためにPostgresについて十分に知らないので、私はここで助け/アドバイスを得ることができるかどうかを尋ねると思いました!
ありがとう!
編集:これが追加のヘルプのためのcreateメソッドです
終わり
62行目はコードでマークされています。
編集2:これが要求されたモデルです...
ruby-on-rails - Postgres Join Query on Rails
私は多くのことを調査しましたが、私の質問に対する答えが見つかりません。Rails アプリで次のように設定しています。
人の列:role
は0
または1
です。
少なくとも 1 人role == 0
とrole == 1
.
何か案が?ちなみにPostgresを使っています。
ruby-on-rails - Rails データベース固有のデータ型
PostgreSQL で Rails を試したのはこれが初めてです。timestamp with timezone
絶対時間を格納する列に関して、通常見られるコードでの使用の欠如に混乱しています。主要な例はdevisetimestamp with out timezone
です。これは、PostgreSQL でa に変換される datetime 列を列に格納します。
timestamp with out timezone
任意のタイムゾーンを意味する可能性があるため、これは悪い習慣だと思います。別のアプリケーションからデータベースにアクセスしていた場合、Rails を見ないと、タイムスタンプがどのタイム ゾーンを参照しているのかわかりません。分散型の混乱になるだけです。
timestamp with time zone
PostgreSQL の ActiveRecord 移行/スキーマでを作成する方法はありますか? 現在の Rails フレームワーク コードとの非互換性の問題は発生しますか?
ActiveRecord がデータベースにとらわれないように努めていることは理解していますが、これは私が無視できない厄介な問題です。
ruby-on-rails - RubyonRailsデータベースとアプリケーションの設計
大規模なデータベースに基づいて、かなり大規模なRubyonRailsアプリケーションを作成する必要があります。このデータベースは毎日更新され、各テーブルには約500 000レコード(またはそれ以上)があり、この数は時間の経過とともに増加します。また、参照整合性とともに、すべてのデータの適切なバージョン管理を提供する必要があります。ユーザーがバージョン間を移動できる必要があります。これは、さまざまな時点でのメインデータベースの一種の「スナップショット」です。さらに、データの一部は、APIを使用して他の外部アプリケーションに提供する必要があります。
大量のデータを考慮して、データベースを分割することを考えました。
現時点でのデータの状態
各テーブルのバージョン管理された属性
特定の過去の時点での最初のデータベースのスナップショット
それらのそれぞれに独自のアプリケーションがあり、データと対話するためのAPIを使用してサービスを作成します。複数のデータベースに直接接続する複数のアプリケーションを作成したくないため、これが必要です。
問題は、これが適切なアプローチですか?そうでない場合、あなたは何を提案しますか?
私たちはこれほどの規模のプロジェクトを経験したことがなく、可能な限り最良の解決策を見つけようとしています。この種のデータ分離に意味があるかどうかはわかりません。もしそうなら、これも必要になるので、個々のサービスと、そしてサービス自体の間で異なるアプリケーションの適切な通信を提供する方法。
ruby-on-rails - 新しいRailsアプリを作成するたびに、Postgresユーザーとデータベースを作成するにはどうすればよいですか?
私はこの本当に役立つチュートリアルに従いました:
http://blog.willj.net/2011/05/31/setting-up-postgresql-for-ruby-on-rails-development-on-os-x/
本当に実行rails new myapp
して、postgresデータベースを自動的に設定したいと思います。Railsアプリケーションテンプレートなどを使用してそれを行う方法はありますか?
postgresql - Railsからpostgresqlのタイムスタンプデータを取得すると、日時が1時間異なるのはなぜですか
データベーステーブルをレールから移行するという問題があります。表の列には、タイムゾーン付きのタイムスタンプも含まれています。
データベースにデータを挿入すると、タイムスタンプ列に現在の時刻が保存されます (例: 2012-08-09 12:00:00 UTC+6:30)
2012-08-09 18:30 という意味だと思います。しかし、レール3.2.6からこのデータを取得すると、2012-08-09 5:30と表示されます
実際の時間と 1 時間ずれて表示される理由。アイデアはありますか?お願いします
ruby-on-rails - ビューを使用してactiveRecordオブジェクトをレガシーテーブルに保存できません
フィールドという名前の列を持つレガシーデータベースにテーブルがあります。テーブルをactiveRecordモデルに直接リンクすることは不可能です。後者はメソッドfield_changed?を作成しようとするからです。これはすでに定義されています。
そこで、フィールドの名前を変更するビューを作成し、挿入、更新、および削除を許可する次のルールを作成しました。
activeRecordモデルをビューにリンクしました。
self.primary_key = "id"を追加する必要がありました。そうしないと、LinkedField.lastなどのメソッドが失敗します(不正なSQLが生成されます)。
SQLではすべてがうまく機能します。ルビーでは、LinkedFieldの属性を更新したり、インスタンスを破棄したりできますが、作成できません。
次のエラーを返します。
何か手がかりはありますか?私はpostgres9.0とrails3.2.6を使用しています。ありがとう
ruby-on-rails - Rails と PostgreSQL の TimeZone と DST
バックグラウンド
created_at
デフォルトの列を持つ記事モデル
レールconfig.time_zone = 'Warsaw'
created_at = local time 2012-08-19 00:15 (UTC で 2012-08-18 22:15) の記事があります。
ゴール
2012 年 8 月 19 日 (現地時間) に作成されたすべての記事を受信するには。
私の(正しく動作していない)解決策
SQL を生成するもの:
そして空のセットを返します。しかし、psql で同じクエリを実行すると、アーティクルが返されてしまい、混乱してしまいます。
質問
何が間違っていて、どうすれば修正できますか?