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

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

詳細はこちら
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

解決済

1回答

1779閲覧

MySQL、開発環境の変更を本番環境へ反映させるには?

teraha

総合スコア59

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2021/03/06 14:01

編集2021/03/06 14:07

MySQL + Node.js + ExpressでWEBサービスを構築中です。

開発環境: Windowsのパソコン
本番環境: VPSのCentOS

1.初期段階、開発環境のMySQLを本番環境に持って行くには?

開発環境のMySQLにテーブルが1つだけあり
id, name, phone
1, 山田, 090-1111-1111
2, 鈴木, 090-2222-2222
みたいな仮データが入っています。

本番環境のMySQLにも同じものを作りたいのですが
・テーブルの構造は開発環境と同じ
・ただし、データは空の状態
にするにはどうすればいいでしょうか?

create tableなどのコマンドを手作業でやれば実現はできそうですが
スペルミスにより開発環境と本番環境でカラム名が違う
みたいなことが発生するかもしれないので、もう少しスマートな方法を知りたいです。

2.サービス稼働後にMySQLの構造に変更があった場合、開発環境のMySQLを本番環境に持って行くには?

id, name, phone
という3カラムでサービスインしたものの、後から
id, name, mobile, email
みたいにカラム名が変更されたり、新カラムが追加されたとします。

本番環境は
id, name, phone
開発環境は
id, name, mobile, email
という状況で

本番環境のテーブル構造を開発環境と同じ
id, name, mobile, email
に変更しつつ、
id, name, mobile の部分は本番環境で稼働中のデータを残すにはどうすればいいでしょうか?
(phoneカラムのデータはmobileカラムに入れ替える)

まとめ
MySQL、開発環境から本番環境にテーブルの構造だけを移行するにはどうすればいいのか知りたい。
1.サービス稼働前(本番環境のDBが空の場合)
2.サービス稼働後(本番環境のDBにデータがある場合)

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

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

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

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

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

hoshi-takanori

2021/03/06 15:50

こういうこと? https://teratail.com/questions/227489 (普通は、create table などは直接実行せずに、ファイルに書いたものを実行して、かつそのファイルはきちんとバージョン管理するのでは…。)
teraha

2021/03/06 23:12

SHOW CREATE TABLE というのを実行すればいいんですね。 1.サービス稼働前(本番環境のDBが空の場合) の方は解決できそうです。 まだ初学者で、物を作りながらMySQLの使い方自体を学習している段階です。 SQL文をファイルに書いておいて、「ファイルから実行」みたいなコマンドがあるってことですかね?
teraha

2021/03/07 07:48

開発環境でテーブルをいじるときも # カラムの追加 ALTER TABLE table_name ADD ~~~ こういうコマンドを対話的に実行せずに、ファイルに毎回書いておけばいいんですね。 mysql -u user_name -p < add_colum.sql 本番環境で上記のようなコマンドを実行すれば、開発環境と同じ操作を再現、 (add_column.sql の中身は ALTER TABLE table_name ADD ~~~) 本番環境のデータを上書きせずに、開発環境と同じテーブル構造にできそうです。 2.サービス稼働後(本番環境のDBにデータがある場合) の方も解決しました。
guest

回答1

0

ベストアンサー

テーブルの作成を行わずにダンプで開発環境からexportし、本番環境に持って行って import しては?

投稿2021/03/07 01:06

Orlofsky

総合スコア16417

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

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

teraha

2021/03/07 07:36

開発環境で mysqldump -u user_name -p --databases db_name -d > dump.sql 本番環境で mysql -u user_name -p < dump.sql 上記の操作で CREATE DATABASE CREATE TABLE を開発環境から本番環境へ移行、テーブルの中身は空の状態に。 1.サービス稼働前(本番環境のDBが空の場合) の方は完全に解決しました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問