• ベストアンサー

HerokuのDBへのinsert方法

アプリケーションからではなく、ローカルからherokuのDBへのレコードの挿入方法を教えてください。 現在、Ruby on Rails4でherokuへのデプロイが完了した地点まで来ました。 db:migrateでデータベースの構築までできたのですが、レコードの追加方法がわかりません。 マスタテーブルは以降更新する必要が無いのでseedで設定してやれば良いのはわかるのですが、不定期的にレコードを追加したいテーブルでは、どのようにしてレコードを追加/更新すれば良いでしょうか。 よろしくお願い致します。

  • gao07
  • お礼率80% (53/66)
  • Ruby
  • 回答数2
  • ありがとう数13

質問者が選んだベストアンサー

  • ベストアンサー
noname#247307
noname#247307
回答No.2

>ツールからアクセスしようと試みましたが外部からはアクセスできませんでした。 そんなことはありません。私は普段、PostgreSQLについてくるAdminIIIでHerokuのデータベースサーバ(amazonaws.com)にアクセスし、メンテナンスしています。 データベースアクセスのための情報が正しく設定されていないか、あるいはファイアウォールなどでアクセスが制限されているなどといったことはないでしょうか。

gao07
質問者

お礼

再びご回答ありがとうございます。 今一度、pgAdminの設定を見直したところ、入力箇所が抜けていました。 DBへの接続は成功しました、有難うございます。 しかし、今度はseedがうまく反映されない事態が発生してしまい、今度はこの問題と向き合うことになりました。

その他の回答 (1)

noname#247307
noname#247307
回答No.1

これは、Railsとは関係ない話になりますが……。 要するに、直接データベースにSQLを送って処理すればいいと思います。Herokuの場合、標準ではPostgreSQLが使われていますから、普通にPostgreSQLにinsert文を送ってデータを追加するような処理を用意すればいいだけです。 Herokuのダッシュボードにアクセスし、Databaseのリンクをクリックすると、利用しているデータベースの一覧が表示されます。ここからデータベースを更にクリックすると、ホストのアドレス、ユーザー名、パスワードなどの情報を得ることができます。見ればわかりますが、Herokuのデータベースは、実はすべてAmazonのAWSで動いています。AWSのデータベースにアクセスするということで考えればわかりやすいかも知れません。

gao07
質問者

お礼

その後調べたのですが、AWSのDBに直接アクセスする方法が見つかりませんでした。 ツールからアクセスしようと試みましたが外部からはアクセスできませんでした。 ご回答ありがとうございました。

関連するQ&A

  • Accessの更新クエリについて質問です。

    よろしくお願いします。 集計したクエリを元に更新クエリを実行すると、更新できません。 やりたい作業としては、売上データテーブルのレコード数を得意先ごとにカウントして、得意先マスタテーブルのレコード件数フィールドを更新する作業です。 追加クエリで一度テーブルに追加してから、テーブル同士で更新も考えたんですが、レコード数が多いためにDBのサイズが爆発的に増えて廃案になりました。 何か良い方法があれば教えてください。

  • rake aborted! でrakeコマンドが失敗する

    rubyでDBを生成しようとすると以下のエラーが発生してしまいます。 何がいけないのでしょうか? インストールバージョンは、ruby:1.8.6 rails:2.02 OS:WindowsServer2003 エラー(traceでログを出しています。) ** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:migrate rake aborted! 対象のコンピュータによって拒否されたため、接続できませんでした。 - connect(2) ウィルスソフト等確認しましたが、問題ないことを確認しています。 どなたかご存知の方、ご教授お願いします。

  • レンサバでにて、JRails3動かしたい。

    レンサバでにて、JRails3動かしたい。 タイトル:Ruby ○ バージョン1.8.5 ー>Ruby1.9.2 と Rails3にするには? 緊急度:急ぎ 本文: 引用元URL: http://hamasyou.com/blog/archives/000369 Ruby の環境を切り替えてつかう rvm 複数の Ruby 環境を切り替えることができる rvm というRubyバージョン管理ツールがあります。便利なので使いましょう。これで、既存の環境を残したまま、Ruby1.9.2 と Rails3 を試してみることが出来ます。 rvm のインストールは、GitHub からするのが推奨されています。gem でインストールするのが簡単なんですけどね。。。 Installing RVM - RVM: Ruby Version Manager 第39回 RVM(Ruby Version Manager)による環境構築 - Gihyo.jp 第40回 RVM(Ruby Version Manager)による環境構築(2) - Gihyo.jp RVMでRailsのバージョンを管理する - DoRuby! Rails3 Doc Rails3 Doc(英語) Rails: Complete API - 37Signals Rails3 ドキュメント翻訳プロジェクト Translating Rails Guides - GitHub Rails3 に対応しているプラグイン一覧 Browse Plugins - RailsPlugins.org Rails3 に関するそのほか WEB+DB PRESS Vol.58 の Rails3 記事がすごくいい! WEB+DB PRESS Vol.58 編 (著), WEB+DB PRESS編集部 (編集) 技術評論社 WEB+DB PRESS vol.58 の Rails 3 / Ruby1.9.2 記事が素晴らしすぎる件 - まちゅダイアリー

  • Ruby on Railsでアプリケーションを作りたいんですが、phpMyAdminでデータベース表の作成がうまく行かないです。

    Ruby on Railsの利用できる環境を構築します。 Ruby、Rails、データベース、Webサーバの4つをまとめてセットにしてしまったソフト【InstantRails】を使用します。 バージョン:InstantRails-2.0-win.zip をダウンロードしました。 そこで、Ruby on Railsでアプリケーションを作成して見ます。 まずは、データベース表を作成します。 【Instant Rails】ウィンドウでApacheボタンをクリックし、メニューからStartを指定しましたが、Start状態に変わってないのです。 いろいろ調べましたが、原因がわかりません。 すごく困ってます。 ご指導をお願いいたします。

  • マスタデータ更新

    こんにちは。 システム開発の基礎的なところがわからないので、教えていただきたく、投稿させていただきます。 システム開発をほとんどやったことがないので、言葉が変なところもあるかと思いますが、宜しくお願いいたします。 サーバー上に、AというSQLServerのDBがあります。 今までは、システム管理者のみがAccessからA.DBのリンクテーブルを使い、マスタデータの更新/追加/削除を行っていましたが、今後、リーダークラスの人もできるようにしたい!という要望があり、そのインターフェース部分を作成しています。 いろいろと考え、フロントエンド側にAccessでB.mdbを作成し、そこには、A.DBと同じテーブル構造の一時TBLを作成し、B.mdbを開いた時にA.DBから全データを取得することにしました。(取得するところまではできています) ここから、設定するための画面作成をしますが、最終的に、更新/追加/削除されたデータは、どのようにA.DBにUPすればいいのでしょうか? 考えた方法として (1)B.mdb内に、一時テーブルとは別に、更に同じ構造の変更用テーブルを作成。 設定画面から更新/追加/削除されたデータは変更用テーブルに保存し、全ての処理が終了したら、変更用テーブルにあるデータを1つづつ見て、A.DBへ更新/追加/削除をかける (2)一時テーブルのデータを直接更新/追加/削除し、全ての処理が終了したら、全テーブルのレコードを1件づつ比較し、A.DBへ更新/追加/削除をかける というくらいしか思いつかないのです。 その他に思ったのが、一時テーブルもしくは変更用のテーブルに、レコード毎に「更新/追加/削除」がわかるようにフラグを設けて、そのフラグに従ったSQL文を発行する というくらいです。。。 根本的に、マスタデータに対する更新/追加/削除のやり方が間違っていたりしますか? 誰も聞ける人がいないので、どうぞ宜しくお願いいたします!!!

  • MySQL上にRedmineのテーブルが作成できません

    WindowsXP上でRedmineを構築しようとして、 データベースをMySQLと考えていますが、 テーブルの作成でエラーとなっています。 手順としては、Ruby、Rails、MySQLを導入し、 MySQL上で'redmine'の空データベースを作成しました。 そして、RedmineのRakefileが存在するディレクトリ配下で テーブル作成するため以下のコマンドを実行したところ、 エラーとなりました。 C:\redmine>rake db:migrate RAILS_ENV="production" (in C:/redmine) rake aborted! no such file to load -- test/unit/error C:/ruby/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile' (See full trace by running task with --trace) ファイルがロードできないと言っているようですが、 どこをどのようにしたら解決するのでしょうか? (もしやバージョンの問題?) ------------------------------------------- ■バージョン Redmine:0.8.4 C:\redmine>ruby -v ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-mswin32] C:\redmine>gem list *** LOCAL GEMS *** actionmailer (2.1.2) actionpack (2.1.2) activerecord (2.1.2) activeresource (2.1.2) activesupport (2.1.2) rails (2.1.2) rake (0.8.7) C:\redmine>mysql --version mysql Ver 14.14 Distrib 5.1.35, for Win32 (ia32) ------------------------------------------- ■database.ymlの内容 production: adapter: mysql database: redmine host: localhost username: root password:(rootのパスワード) encoding: utf8

  • 大量データの取得処理について

    テーブル1のレコードを全件取得し、取得したレコードの特定の項目を一件ずつチェックし、テーブル2の値を更新する処理を考えています。 しかし、テーブル1のレコード数が8万件存在するため、一気に全件を取得するのはまずいことになるのではと危惧しています。 そこで、fetch first ~ rows を使用するため、テーブル1に項目を追加し、更新が済んだらその項目にフラグを立てるような処理も考えましたが、 たった一度の処理のためにテーブルに項目を追加するのもどうかなと思っています。 1000件くらいずつ順番に取得できる良い方法があったら教えてください。 よろしくお願い致します。 ちなみにデータベースはDB2を使用しています。

  • ACCESS 97のことでお聞きしたいことが。

    実は知人のACCESSのデータベースで相談されております。いままでフォームを使って入力していたものが更新できないと言うことでした。エラーメッセージの内容は「レコードを追加できません。テーブル”○○”の結合キーがレコードセットにありません」とでます。で、いろいろ調べてるうちに「○○」というテーブルそのものが消えてることに気がつきました。本人に問い合わせてみたところ、消した覚えはないそうです。で、じつはこのデータベースの過去の状態の物があったので見比べてみるとやっぱりあるはずのテーブル○○がないので更新できないと言うところまで行き着いたわけですが、過去の完全な状態の物があるなら過去のやつと今のやつをどうにかすれば簡単なんではと思ったわけですが、過去のDBに現在の差分を足すって出来ますでしょうか?それとも何かいい方法があれば教えていただきたいのですがよろしくお願いします。ちなみに現在のDBで、修復をかけてみましたが、復活なりませんでした。

  • 2パターンのデータベース設計で最適なほうはどちら?

    こんにちは。 データベース設計をするにあたり、迷っています。 言語はRuby on rails、DBはMysqlです。 たとえば日記サイトを作るとして (1)テーブル : users , diariesがあって、それぞれのidはuser_diaries というリレーション用のテーブルを作って持たせる (2)テーブル : users , diariesがあって、diaries にuser_id というカラムを持たせる というような作り方ができると思うのですが、どちらが優れていると言えるでしょうか? 決めの問題でしょうか? 将来的に大きなサイトになっても大丈夫なようにしておきたいです

  • Ruby on Railsのmigrateについてです!

    初めまして、Ruby on Rails初心者の者です。 現在modelを5つ作成してあります。 そこで新たにmodel(6)を作成(コマンドプロンプトにて)したのですが、記述ミスがあったので今作成されたmodel(6)を削除しました。(データーベースからも) で、また同じ名前で作成したのですがエラーが何も表示されず、コマンドが入力できる状態になってしまいます。 ruby script/generate model モデル名  ↓正常 rake db:migrate  ↓何も表示されない コマンドが入力可能状態になる 何が原因なのでしょうか? 調べたのですが、私には分からずとても困っています 分かる方居ましたら、回答お願い致します。

    • ベストアンサー
    • Ruby

専門家に質問してみよう