利用FuelPHP Migration拿建立資料庫的function
前言:
Migration實際上原本是要自己寫的,且這個遷移實際上跟字面上的語意差很多
Migration的作用是結構控管,也就是現在的資料庫使用的結構如果是共同協作,那麼如果我需要升級一個版本,那我統一丟一組migration給你就好了,你升級以後就能使用新寫出來的某某系統,大概是這樣的概念
(點選標題閱讀全文)
FuelPHP Migration小研究
簡單來說呢,migrate是一個架構改變機制
up和down設定好以後,up通常就是升級版本以後資料庫應該要怎樣
也就是我想要在新版的A資料表的B欄位名稱應該改成C
那up就是A.B 改成A.C down就是A.C改成A.B
由於是可逆的,因此up和down必須完全是相反操作,這樣就能符合結構的版本控制
如果中間有發現什麼問題,也可以直接退版本來解決以後,再重新進到比較新的版本當中
官網沒有說很清楚,其實那個檔案XXX_filename的XXX就是版本名稱
因此如果打入php oil r migrate --version=23
就是從目前執行的版本一直執行up裡面的函式直到23號的檔案
然後如果又要退到15號,打入php oil r migrate --version=15,他就是不斷執行down的函式直到版本是15
因此這裡的架構的PHP SQL Code可逆性有嚴格要求(尤其做什麼rename 然後還有搬東西或修改架構而非創建之類的,就要特別注意)
最後,這些東西都跟資料無關,注意migration只針對資料庫架構進行調整,是不管裡面資料內容的
所以你可以看到up 裡面create一堆,down 就直接drop了(或相反)
中間不負責救資料,因此需要留意
ubuntu rename的真正用法
天殺的不懂為什麼範例少到一個 ...
假設想把該資料夾所有php檔名裡面的abc改成xyz
rename 's/abc/xyz/' *.php
FuelPHP的short tag
不存在,不要懷疑
這是為什麼他如果想用short tag還需要掛smarty的原因
這點code igniter就好很多,不過code igniter是暫存還是每次編譯就沒有去看了
smarty是會先編一次放在暫存資料夾下面,實際上沒有運作問題(除了第一次執行,但這並非大量使用的重點考量)
ubuntu apache預設編碼
/etc/apache2/conf-available裡面
有個註解狀態的AddDefaultCharset UTF-8
取消註解後重開即可
有些環境可能不一樣,反正找到含有這行且有作用的檔案改就對了
apache多server基本設定
雖然每次都能解決,不過要一直try自己做的對不對很煩,紀錄一下
<VirtualHost *:80>
DocumentRoot /var/www/
ServerName ayu.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/test1/test2/test3
ServerName ayu
</VirtualHost>
然後,網域註冊或host
此時
ayu/index.php即 /var/www/test1/test2/test3/index.php
ayu.local/index2.php即 /var/www/index2.php
此時ip/index2.php 可以正常連,不過ip/index.php會找不到