如何移動 django project

Pei Lee
4 min readApr 3, 2018

--

需求描述:偶白粗在 GCP 上開了 200G 的機器架了 1G 不到的 django project 浪費公司錢,於是改開了一台小的機器,要把原本的 django project 移過去。

移動在原電腦虛擬環境中的 django project 到新電腦,拆成兩部分來筆記:

【版本】

本機 Mac iOS + GCP VM ubuntu 16.04 + django 1.11 + Python 2.7

一、重建環境

  1. 在原電腦移動到 project 目錄
cd /your/path/to/project/

2. 啟動虛擬環境

. env/bin/activate

3. 產生 requirements.txt

pip freeze > requirements.txt

4. 到新電腦重建 env 環境

virtualenv --python=python2.7 env

5. 在新電腦啟動虛擬環境

. env/bin/activate

6. 根據原電腦產生的 requirements.txt,在新電腦安裝需要的套件們

pip install -r requirements.txt

二、移動 project 資料夾

要跟 GCP 上的 VM 連接似乎有很多方法,這邊紀錄一下昨天學到的新方法:從本機電腦 SSH 到 GCP 上的電腦。

  1. 在本機電腦的 terminal 產生 key:
ssh-keygen -t rsa

2. 進入資料夾裡面看一下 key,複製 key

cd .sshlscat id_rsa.pub

3. 到 GCP 上 Compute Engine,編輯目標 VM,在 [SSH 金鑰] 新增項目,在空白處貼上剛才複製的 key。

4. 在本機電腦 terminal 確認一下能否 SSH 進去:

ssh [VM 外部 IP]

5. 確認原電腦跟新電腦有無讀寫目的資料夾的權限,沒有的話要開:

sudo chmod 777 [資料夾] 

6. 先把原電腦上的資料夾 copy 到本機:

scp -r [user]@[VM 外部 IP]:/home/pei/[projectFolder] .

7. 再把本機的檔案 copy 到新電腦:

scp -r ./[projectFolder] [user]@[VM 外部 IP]:/home/pei/ 

8. django migrations

python manage.py migrate

9. 啟動 server:

python manage.py runserver

噴 error,需把 settings.py 的 ALLOWED_HOSTS 改成新電腦的外部 IP,再重啟一次就成功了。

額外筆記一

把本機的檔案傳進 VM 裡面:

  1. 到 Google Storage ,把要傳的檔案拖進去介面上傳
  2. 在 VM 裡面輸入指令:
gsutil cp gs://[folderName]/[fileName] .

額外筆記二

在 Google Cloud Shell 建立 VM 並建立防火牆規則

  1. 建立 VM
gcloud compute instances create [vmName] --image-family cos-stable --image-project cos-cloud --zone asia-east1-b --boot-disk-size=10GB --machine-type n1-standard-1

2. 建立防火牆規則,開 8888 Port

gcloud compute firewall-rules create [firewallRuleName] --allow tcp:8888

參考資料

以及聰明ㄉ同事。

--

--

Pei Lee
Pei Lee

Written by Pei Lee

Data Team Lead @ Retail & E-commerce Industry

No responses yet