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

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

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

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

SQL

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

Q&A

解決済

3回答

2137閲覧

djangoで複数人でローカル開発するときのDB

pokeharry

総合スコア27

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

SQL

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

0グッド

0クリップ

投稿2021/05/13 06:41

djangoで複数のPCから開発したいとき、

それぞれのPCから同じデータを持ったDBに接続する方法はありますでしょうか。

これまでに自分のPCでDBサーバーを構築して、データはそのサーバー内にあると思うのですが、
そこのデータベースを他のPCか使用することは可能なのでしょうか。

よろしくお願い致します。

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

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

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

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

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

maisumakun

2021/05/13 07:12

「各自がそれぞれにデータベースを構築する」という方法では、どのような問題があるとお考えでしょうか?
pokeharry

2021/05/13 07:35

各自がそれぞれにデータベースを構築、した場合、データの内容は全く同じものになるのでしょうか?
guest

回答3

0

Djangoにもマイグレーション機能くらいあるだろう。
https://docs.djangoproject.com/ja/3.2/topics/migrations/

  • スキーマはマイグレーションで揃える。
  • ローカルDB内のデータは揃えなくていい。どうしても揃えたいならSeeder。
  • 特定のデータで動作が問題ないことは自動テストでテストする。

共通のDBを使うのはステージング環境。

投稿2021/05/13 08:12

kawax

総合スコア10377

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

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

0

一般的には開発用のDBサーバをたててメンバー全員そちらにつなぎます。
全員がローカルに立ててしまうとリアルタイムな連携は不可能ですし、マージする手間が発生します。

投稿2021/05/13 07:42

m.ts10806

総合スコア80861

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

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

0

ベストアンサー

Q.(自分のPCの)データベース(以下、DBと呼びます)を他のPCから(共同開発のために)使用することは可能か?

Ans.可能ですが一般的なやり方ではありません。

一般的には以下のようなやり方をしているところが多いです。(2)のやり方が基本的にはオススメです。

(1)各自のPC(これをローカル開発環境と言います。)でDBを構築し開発を進める。

=>このやり方だと(他の開発メンバーが)テーブル定義を変えた際には当然それを自分のローカル開発環境のDBに反映させる作業(マイグレーションファイルを用いる)が必要です。

またDBの中に入れるデータもメンバーそれぞれで準備する必要があります。(つまりメンバーそれぞれでDBの中に持っているデータはバラバラになってしまいます。)

今回のpokeharriさんの質問の意図から考えるとこのやり方は取りたくないと思われますのでもう一つのやり方を(2)で記載します。

(2)レンタルサーバーやクラウドサービス上でLinuxサーバーを構築し、特定のIPアドレスを持っている人だけSSH接続を受け付ける設定などして共同開発を行う。

=>これであれば一つのDBを共同で使う形になるのでテーブル定義やDBの中のデータを各自用意する必要がなくなります。逆に言えば他のユーザーが自分の意図しないDB設計変更を加えた場合それが即座に反映されるので注意が必要です。

※レンタルサーバーはさくらのレンタルサーバーやConoHaサーバーなどが有名です。初心者向けの書籍も多く学習も容易なので最初はこれでもいいかと。
※クラウドサービスはAWSやGCPなどがポピュラーです。
※自分のPCを共同で用いるDBとして使わないのは質問者さんのPCをシャットダウンしているときに他の開発メンバーがDBにアクセスできなくなるから、、、等の理由があります。

以上です。上記でまだ何かわからないことがあれば聞いてください。

投稿2021/05/13 07:36

編集2021/05/13 07:50
digitalhimiko

総合スコア142

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

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

pokeharry

2021/05/13 08:49

非常に分かりやすい説明ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問