🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

3回答

3586閲覧

開発環境化のDBデータはどうやって本番にコピー(または再現)しているのですか?

yoyoyoyogi

総合スコア47

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2020/12/06 22:23

今まで、開発環境を構築せずに、ローカルでコーディングしていきなりサーバーにアップするというやり方で無理くりサイトを作ってまして、そのやり方でmysqlも使っていました。
myspqlはmyadminでブラウザから操作してデータを入れていました。

勉強の為に、そのサイトを開発環境を構築して作り直ししようと思ってますが、開発環境化で構築したDBデータってどうやって本番環境に移行しているのでしょうか?

やろうとしているのは、MAMPでlaravel使って、という感じです。
予定ではDBには顧客データの他、商品データが膨大に必要で、この商品データをテスト環境からそのまま本番環境にコピーできると良いのですが。

説明が下手かもしれないのですが、
顧客データ(こちらは最悪移行出来なくてもいい。多分ダミーデータで開発する)
商品データ(膨大なので、せっかく開発環境化でリアルな物を構築したら本番に簡単に移行できたら嬉しい。ダミーデータでの開発はしない)

と、言う事でございます。
やり方教えて頂けると嬉しいです。

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

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

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

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

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

m.ts10806

2020/12/07 00:21

開発環境と本番環境って大体データ違いませんか。
m.ts10806

2020/12/07 00:26

マスタデータならマイグレーション、シーダーで対応するものとは思いますが、そもそもどのように開発進めているか提示されてないのでLaravel的なアドバイスはつきづらいかと思います。
yoyoyoyogi

2020/12/07 00:26

質問ありがとうございます。 やっぱり、普通はそうなのですね。 初心者すぎて普通が分からなくて恐縮です。 やろうとしているのは、単純に商品が1000個あるので、その1000個をダミーじゃなくてきちんとした商品をDBに登録してテスト・開発したい、そしてそれをそのまま本番のDBに移行したい、という感じでございます。。
m.ts10806

2020/12/07 00:27

普通は、本番でちゃんとしたデータを登録します。それが本番運用テストにもなります。
m.ts10806

2020/12/07 02:17

あと一応 myspqlというものも myadminというものも PHP、Laravel周辺にはありません。 おそらく MySQL phpMyAdmin でしょうけどこれら固有名詞なので、可能なら大文字小文字まで。プログラムは書いた通りにしか動きません。
guest

回答3

0

考え方が危ういですね。
開発環境→本番環境
ではなくて、
適用する定義→開発環境
上記でOKなら
適用する定義→本番環境
と考えて下さい。
なぜなら、本番環境と開発環境を同じに出来ない状態があるからです。

時系列的に以下になると思います。
1.開発環境がメイン
2.開発環境をベースに本番環境作成
3.稼働後は本番環境がメイン

稼働後のメンテナンスを考えた場合、以下の手順が考えられます。
1.本番環境を開発環境にコピー
2.開発環境に変更(適用する手順をバッチ化)
3.検証がOKなら、本番に上記手順を適用
※ポイントは、本番や開発環境に再実行可能な自動化手順を如何に用意するかです。
資源の関係から本番環境を丸々開発環境にコピーできないケースも考えられますが、その場合でも整合性を保った状況にする必要があります。

投稿2020/12/07 02:13

編集2020/12/07 02:17
sazi

総合スコア25327

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

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

yoyoyoyogi

2020/12/08 03:14

回答ありがとうございます。 む、難しいっす。。。。 すぐには理解出来ないのですがよく読んで解釈させてもらいます。 また質問ありましたらお願いします。
guest

0

Laravelを使うっていう条件付きならSeeder使ってartisanコマンドで投入ってのが普通かなと思います
当然ながらその対象のデータはマスター系のみです
そしてSeederを本番に反映→Seederを実行という自動化の流れに組み込みます。(人それぞれ)
自動化してなかったとしても、代わりに手作業になるだけでSeeder使います。

※自動化以前は様々な事情(主にデータを用意する顧客の都合)で1行ずつSQL吐き出せるエクセル作ってた&初回に関してはダンプデータの投入をしていた。

投稿2020/12/07 01:10

hentaiman

総合スコア6426

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

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

yoyoyoyogi

2020/12/07 01:21

ご回答ありがとうございます。 これまた、一読では意味が分からない初心者なので(なんとなくしか分からない)良く調べて解釈します。 また質問しましたら是非お願いします。
guest

0

やり方として、2種類あります。


  1. ローカルのMySQLでDBバックアップを行い、本番環境でリストアする方法

 (この場合、顧客データはローカルのものが反映されるので、一旦データ削除し
本番用を別途inportする必要がある)

  1. 全テーブルのDDL(create tableやインデックス定義のSQL)を作成し、データはローカルの方のDBから

 必要なデータ分を各テーブル毎にinportで流し込む方法。


1.が手間かかりませんが、後々に他の環境でも開発するケースなどがある場合は
2.のやり方で用意し、本番用、開発用データinportSQLを用意しておくといいかもしれません。

ご自身の状況にあわせて考慮してみてください。

投稿2020/12/07 00:23

Takeshi_Ueda

総合スコア183

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

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

yoyoyoyogi

2020/12/07 00:28

ご回答ありがとうございます。 初心者すぎてすぐに意味が分からないのですが、調べて解釈してみます。 また質問ありましたら是非お願いします。
Takeshi_Ueda

2020/12/07 00:34

以下の2つをGoogle等で調べてみてください。イメージつきやすいかもです。 ・MySQL バックアップ リストア ・MySQL DDL 頑張ってくださいね。
yoyoyoyogi

2020/12/07 01:22

おお!ご親切にありがとうございます。 調べてみます。
m.ts10806

2020/12/07 02:19

いちおう。 import ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問