質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

3回答

2621閲覧

herokuを使ってデプロイしたアプリのDBをURLで共有する方法がわかりません。

asakawa

総合スコア7

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2020/04/02 06:34

前提・実現したいこと

herokuを使ってデプロイをしたのですが、DBをURLで共有する方法がわかりません。

発生している問題・エラーメッセージ

laravelを使い、アプリ開発をしたのでherokuにデプロイしたのですが、
mysqlを使いたいと思い、herokuのアドオンの一つであるClearDBを使っています。
DBを他人がアクセスできるようにURLを共有したいと思ったのですが、その方法が分かりませんでした。

調べたところherokuにはPostgresSqlというアドオンがあり、Dataclipsという機能でDBを共有できる機能があるということが分かりました。
「Dataclips で、チームの誰でも SQL に慣れている方なら現在進行形の本番環境データに関するレポートを簡単に作成し、ユニークなURLによって、結果を組織内で共有したり、世界に公開したりできます。」
https://jp.heroku.com/postgres

1.上記の目標を達成する場合にはこの機能を使う以外に方法はありますでしょうか?
例えば、クライアントや共同開発者とurlでDBを共有する場面もあると思うのですが、
皆さんはどのようにして共有しているのでしょうか?
また、ClearDB(mysql)を使って共有することは難しいのでしょうか?

以上どうぞよろしくお願いいたします。

該当のソースコード

試したこと

環境設定変数である mysql:~ から始まるurlのことだと思ったのですが、それだとアクセスの方法不明で違うと判断しました。

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/04/02 12:53

公式としては postgres を押してるだけです。 DH サービス ならばどれでもいいです。
asakawa

2020/04/05 00:39

コメントありがとうございます。 返信遅くなりすみません。 >公式としては postgres を押してるだけです。 >DH サービス ならばどれでもいいです。 そうなんですね。 初心者なのでイマイチよく分からないところが多くてとても勉強になります。 postgresの様にDBを一意のurl化して共有する方法がないか 探しているのですが、見つからず困っています。
guest

回答3

0

ベストアンサーですが、asahina1979様、Lulucom様
両名甲乙つけがたかったのですが、
「PostgreSQLのDataclips機能と同じ機能をmysqlで使いたい」という点でLulucom様にさせていただきました!
質問自体初めてで不安だったのですが、
とてもよくしていただきありがとうございました。

投稿2020/04/14 06:17

asakawa

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

本体へのアクセスやデータ構造でないとしたらこっちかな

テーブル定義の出力(Excel, CSV)
A5-MK2

投稿2020/04/05 02:14

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asakawa

2020/04/05 05:19

コメントありがとうございます! おお!そんな便利な機能があるんですね。 出力できるのはかなり便利ですね!! DBのurlを発行してwebページみたいに今どういう状況なのかをアクセスしてみてもらう みたいな都合のいい方法はないですよね・・・。
退会済みユーザー

退会済みユーザー

2020/04/06 03:29

* 上記ファイルを excel online で共有 * phpMyAdmin (リードオンリーのユーザーは作成不可能なはずだが。。。) 程度だなぁ
asakawa

2020/04/08 12:32

返信遅れて申し訳ございません。 こちらの方法がわかり大変勉強になりました。
guest

0

ベストアンサー

他のアプリからそのデータベースにアクセスしたいという意味でしょうか?

環境設定変数である mysql:~ から始まるurlのことだと思ったのですが、

そのURLを使えるのではないかと思います。HerokuアプリにClearDBを追加すると、以下のような形式のCLEARDB_DATABASE_URLという環境変数が設定されています。

CLEARDB_DATABASE_URL: mysql://ユーザ名:パスワード@ホスト名/データベース名?reconnect=true

例えば、他のアプリがLaravel 6.xのアプリなら、DATABASE_URLという環境変数を認識しますので、上のような実際の値を、DATABASE_URLにセットしてあげれば良いはずです。ローカルなら.envファイルで設定すると思いますので、以下のようになります。

DATABASE_URL=mysql://ユーザ名:パスワード@ホスト名/データベース名?reconnect=true

(すみません、ClearDBを使ったことが無いので、そのような使い方が許されているかどうかまではわかりません)

投稿2020/04/04 06:00

編集2020/04/04 06:07
Lulucom

総合スコア1899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

asakawa

2020/04/05 00:43

コメントありがとうございます。 ClearDBはあまり有名じゃないのでしょうか? mysqlが使えるという理由だけで選んでしまいました(汗) postgresにある機能の様にDBを一意のurl化してリンクを貼るだけで 関係者と共有する方法がないか探しているのですが、 見つからず困っています。 あまりそういう方法で使うことはないのでしょうか?
Lulucom

2020/04/05 01:14

DBにアクセスするURLではなく、 DBへの問い合わせの結果(SQLの実行結果)を共有するURLということなんですね。 やはり質問の意図を取り違えていたようです、すみません。 DataclipsはHeroku Postgresの機能で、ClearDB自体にはそのような機能はどうも無さそうです。 https://stackshare.io/stackups/cleardb-vs-heroku-postgres
asakawa

2020/04/05 01:19

Lulucomさんコメントありがとうございます。 質問わかりにくく申し訳ございません。 「DBへの問い合わせの結果(SQLの実行結果)を共有するURL」 という意味で間違いありません。 やはりそういった機能はないんですね。 別の方法が見つからないので DB自体をPostgresに変更するくらいしか共有する方法は なさそうですかね・・・。
Lulucom

2020/04/05 01:33

CLEARDB_DATABASE_URLの値を使えば、他のアプリからアクセスできると思いますので、他のアプリで問い合わせした結果を表示させて皆で共有するとかでしょうかね。ClearDBのダッシュボード画面では、MySQL WorkbenchやSequel Pro for Mac OS Xなども使えるみたいなことが書かれていますね。
退会済みユーザー

退会済みユーザー

2020/04/05 01:57 編集

接続URLの話かとうちもおもったが http://sqlfiddle.com/#!9/89df6a/1 こういうことをしたいのかなとおもったがそれもちがいそうだな
asakawa

2020/04/05 02:00

ありがとうございます。 sequel proを使って ダンプファイルでデータを共有するなどでしょうか。 (CLEARDB_DATABASE_URLがあればダンプファイルは必要ないのかな? 初心者ですみません。) そう考えるとHeroku PostgresのDataclipsはとても便利ですね。 ClearDB自体はあまり使わないのでしょうか Mysqlからの移行に関していくつか記事を見たのですが、 一応移行の仕方は https://devcenter.heroku.com/articles/heroku-mysql にあるのでできるみたいなのですが、 Mysql以外使ったことがないので簡単にやっていいのか ちょっと不明なんですよね・・・。 https://www.geekly.co.jp/column/cat-webgame/1906_003/ 以下によると 「MySQLとPostgreSQLを比べた場合、分かりやすい違いとしては、大量のデータに対するSELECTの処理が、MySQLよりもPostgreSQLの方が速いという特徴があります。」 くらいなので特に操作性に違いはなさそうという感じですかね・・・。 laravelの設定をPostgreSQLに変えてあげるくらいでしょうか
asakawa

2020/04/05 02:07

asahina1979さん コメントありがとうございます。 質問は 「作ったサービスをお客さんに渡した時にDBはこんな感じですと urlでリンクを貼ってクリックして見てもらう」 様な感じの意図でした! SQLの知識がない方に共有したりするのに CLEARDB_DATABASE_URLを使ってくださいといっても 伝わらないと思うので普段お客さんなどにどうやってお見せすればいいのか 分からなかったので、、、。 質問の意図がわかりにくくてすみません(汗)
Lulucom

2020/04/05 02:22

> ダンプファイルでデータを共有するなどでしょうか。 いえ、お客さんにダンプファイルを見せる意味はないかなと思いました。 > ClearDBはあまり有名じゃないのでしょうか? > ClearDB自体はあまり使わないのでしょうか これは知識不足でわかりません、すみません。 > laravelの設定をPostgreSQLに変えてあげるくらいでしょうか 基本的にはそうだと思います。Laravelアプリでは基本的にEloquent経由でアクセスしているかと思いますので。もし直にSQLを使っているところがあれば、SQLや仕様の細かい違いが影響するところはあるかもしれません。
Lulucom

2020/04/05 02:24

あ、でもマイグレーションファイルもあるので検証は必要ですね。MySQLでは実行できるがPostgreSQLだとエラーになるマイグレーションもあるかもしれません。
asakawa

2020/04/05 05:24

ありがとうございます。 移行といっても慎重にやらないといけない部分がありそうですね、、、。 その場限りでもいいのでDBのurlを発行してwebページみたいに今どういう状況なのかをアクセスしてみてもらうみたいな都合のいい方法を探していたのですが・・・なかなか難しいですね。 PostgreSQLに変えるか、他のアプリで問い合わせした結果を表示させて皆で共有するかになりそうですかね 色々と質問ばかりしてしまいすみません。
Lulucom

2020/04/05 13:49

(コメントに気づくのが遅れました、すみません) > お客さんに渡した時にDBはこんな感じです > webページみたいに今どういう状況なのかをアクセスしてみてもらう どういうことをされたいのかを、まだイメージできていないのですが、 asahina1979さんのご回答ともまた違うのでしょうか。 > 他のアプリで問い合わせした結果を表示させて皆で共有するかに データベースに問い合わせた結果を集計などしてチャート表示とかそういうことなのでしょうか。
asakawa

2020/04/08 12:31

返信遅れて申し訳ございません。 >asahina1979さんのご回答ともまた違うのでしょうか。 分かりにくくてすみません。イメージとしては PostgreSQLのDataclips機能と同じ機能をmysqlで使いたいというものでした。 >データベースに問い合わせた結果を集計などしてチャート表示とかそういうことなのでしょうか。 その様な感じです。 プラスDBの構造や入っているデータなどを確認できればなお良いなと思っておりました。 なんども質問に答えていただき本当にありがとうございます。
asakawa

2020/04/14 06:13

おお!ありがとうございます! まさに探していたものです! とても助かりました! Lulucom様ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問