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

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

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

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

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

1回答

2919閲覧

デプロイ後の更新の実務

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

2グッド

2クリップ

投稿2016/06/01 06:33

Djangoでアプリを作成し、VPS上にデプロイし、問題なく動くことを確認できました。
ただ、今後も改良を加えていくことになるので、今後アップデートする場合の実務について、知りたいです。
私は、今回のデプロイにおいては、下記の手順でやりました。

①ローカルPC上からGithub上に、git push でGitHubにアップロードする(ディレクトリ丸ごと)
②VPS上に、git clone する。
③nginx と gunicorn で動くように、settings.pyを調整。
④nginx と gunicornで稼働。

現在、データベースは、sqlite3を使っており、GitHubにアップロードする時に、一緒にpushし、VPS上にcloneされています。

現状、これで問題なく動いています。

しかし、今後、ローカルPC上で改良を加えて、それをVPS上に適用させる時、どうすればよいのかと疑問に思いました。
公開されているので、アップデートされる前のデータは全て維持しておく必要があります。

私が考えた方法は、下記のとおりです。
①ローカルPCからGitHubにpushする前に、ディレクトリからsqlite3を除いておく。
②上記ディレクトリを、GItHubにpushする。
④VPS上に、GitHubからcloneする。
これで、VPS上のファイルは、sqlite3を除いて、全てローカルPCのものと同じになる。
VPS上のsqlite3だけ、古いものが残される(※)
⑤python manage.py makemigrations app
python manage.py migrate
でVPS上の sqlite3をアップデートされた仕様に変更する(もともと入っていたデータは残る)。

ディレクトリは、下記の構成で、これを丸ごとpush、cloneしています。
test_ test
|
_ testapp

|_ _ db.sqlite3 ←これを今後のpush、clone時には外す。 |_ _ manage.py

一般的な実務が分からないので、上記のように考えてみましたが、
上記の方法で更新をすると、問題はあるのでしょうか?

後、気になるのは、db.sqlite3がない状態のものをVPSにcloneすると、
VPS上のdb.sqlite3は消えてしまうのでしょうか?

お分かりの方、ご教示頂ければ幸いです。
よろしくお願いいたします。

av-, Youhei-Sakura👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

最初のPUSHにsqliteのファイルが含まれていて、そのファイルはそのままでローカルなどでも使うのであれば、単純に管理対象から外すことで良いかと思います。
.gitignoreにtest/db.sqlite3を追記し、git rm --cached db.sqlite3とすることで、すでに登録されているファイル自体は消えずに管理対象から外せると思います。

投稿2016/06/21 09:12

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2016/06/21 09:56

ありがとうございます。 .gitignoreで、sqliteを外して対応しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問