[Laravel] 使用 MigrateSpecific 遷移指定檔案到資料庫

當我們將 migration file 遷移到資料庫後,日後想要直接修改原先的 migration file 而不是新增一個去做結構變更時,可以透過 migrate:refresh 重新遷移,但是如果前一次遷移包含多個檔案時,這些資料表都會受到影響;若想要修改的資料表不屬於上一個批次(batch),透過 –step 選項去做遷移,影響範圍就會更大。

常見的做法是建立一個臨時目錄,將 migration file 放進去後執行遷移,但是這個做法僅適用於第一次遷移;另一種方式是修改資料表 migrations 的批次號碼,讓指定的 migration file 成為上一個批次。

這些都是臨時性做法,若是有很多批要修改就會很麻煩,所以我就寫了一個小工具,之後用一行指令就可以解決這個問題。

 

Package Name: MigrateSpecific
Version: 1.2.1
Site: https://github.com/caloskao/migrate-specific

Read more “[Laravel] 使用 MigrateSpecific 遷移指定檔案到資料庫”

將 GoDaddy 網域移轉至 Google Domain

Google 推出了新的服務 Google Domain ,讓需要購買網域的人多了一項新選擇,雖然訂價不會是最便宜的,但是有額外免費提供 WHOIS Privacy 資料隱藏、簡易轉址、Email 轉寄等功能,且 Google 的資料中心遍佈世界各地,服務的穩定性與速度自然是不須質疑。雖然目前仍為測試版,但實際上該有的功能都已可以正常使用。本篇將以 GoDaddy 為例,說明如何將網域轉入 Google Domain。

Read more “將 GoDaddy 網域移轉至 Google Domain”

[PHP] 提升 json_encode() 資料可讀性

PHP 可藉由 json_encode()json_decode() 來編碼與解碼 JSON 格式的資料,在一般情況下不需要特別給予任何參數,但如果將 JSON 格式資料直接儲存的話,預設是儲存一行文,在不靠任何工具的前提下僅以肉眼辨識會顯得有點吃力。

$data = [
    '5b8e2e456106f8.12710761' => [
        'id' => '5b8e2e456106f8.12710761',
        'description' => '',
        'options' => [],
        'size' => 1243916,
        'create_at' => '2018-09-04 15:04:02'
    ]
];
echo json_encode($data);

 

輸出如下:

{"5b8e2e456106f8.12710761":{"id":"5b8e2e456106f8.12710761","description":"","options":[],"size":1243916,"create_at":"2018-09-04 15:04:02"}}

 

如果想要提升 JSON 格式資料的可讀性,只需要將 json_encode() 的第二個參數設為 JSON_PRETTY_PRINT 即可。

echo json_encode($data, JSON_PRETTY_PRINT);

 

輸出:

{
    "5b8e2e456106f8.12710761": {
        "id": "5b8e2e456106f8.12710761",
        "description": "",
        "options": [],
        "size": 1243916,
        "create_at": "2018-09-04 15:04:02"
    }
}

 

PHP 5.6.6 以上可選擇的參數共有 11 個,詳細說明可見 PHP 官網 

 

 

 
 

HTTPS 網頁出現「blocked mixed content in browser」

當瀏覽器連線到一個 HTTPS 網站,但是瀏覽器網址旁邊出現了不安全的警告訊息,或是有部分內容被隱藏,可能是因為頁面裡面引用了未加密的 HTTP 外部資源,例如:

  1. 腳本(<script> 標籤)
  2. 樣式表(<link> 標籤)
  3. 圖片(<img><figure> 標籤)

Read more “HTTPS 網頁出現「blocked mixed content in browser」”

[Python] 判斷是否有來自標準輸入的內容傳入

一個處理資料的 CLI command 一定會有資料輸入,而輸入來源可以是檔案,也可以是從標準輸入(Standard Input, STDIN)而來,若需要同時支援標準輸入與指定參數(檔案路徑),則需要判斷輸入來源為何。參數判斷的部分,若是使用 argparse  開發的話,則在呼叫 argparse.add_argument() 時就可以設定好參數,最後呼叫 argparse.parse_args() 時即可得知是否有參數輸入,那標準輸入要如何判斷?

Read more “[Python] 判斷是否有來自標準輸入的內容傳入”