Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修改 Pix_Table 的 MySQL adapter 以正確產生資料表 #21

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

yookoala
Copy link

  1. 原裝的 Pix_Table_Db_Adapter_MysqlCommon::createTable 不支援
    longtext 資料類型產生資料表,而會將相關欄目宣告為 text。

    由於 text 的長度太知,不適合我們使用,較早前改為 longtext 的
    資料表宣告並未生較。所以現在將 longtext 加入為該 adapter 的
    可支援類型。

  2. 原裝 Pix_Table_Db_Adapter_MysqlCommon::createTable 並沒有指明
    資料表的編碼類型,許多 MySQL 資料庫預設會用 latin1,這並不能正
    確接收中文網站的原始資料。部份中文網站用的冷僻字,需要用到統一
    碼的 4 byte 範圍,連正常的 UTF8 編碼也不足以處理。

    修改後的 createTable 自動將資料表預設編碼設定為 "utf8mb4",能
    正確處理上述情況。

  3. 改進 new-raw-tables.php

  4. 修正 table-build.php 首次執行的問題

 1. 原裝的 Pix_Table_Db_Adapter_MysqlCommon::createTable 不支援
    longtext 資料類型產生資料表,而會將相關欄目宣告為 text。

    由於 text 的長度太知,不適合我們使用,較早前改為 longtext 的
    資料表宣告並未生較。所以現在將 longtext 加入為該 adapter 的
    可支援類型。

 2. 原裝 Pix_Table_Db_Adapter_MysqlCommon::createTable 並沒有指明
    資料表的編碼類型,許多 MySQL 資料庫預設會用 latin1,這並不能正
    確接收中文網站的原始資料。部份中文網站用的冷僻字,需要用到統一
    碼的 4 byte 範圍,連正常的 UTF8 編碼也不足以處理。

    修改後的 createTable 自動將資料表預設編碼設定為 "utf8mb4",能
    正確處理上述情況。
原有方法直接用 SQL 語句產生表格,表格的結構不能隨 Pix_Table 實現而改變,比較不靈活。

改用 Ronny 在[這裏](https://github.com/ronnywang/newsdiff/issues/18#issuecomment-59484616)提及的方法產生 news_raw 表格。
新安裝時,table-build.php 的 drop table 指令執行失敗,結果阻礙程式進行。

修改後會偵測錯誤訊息,若果屬於 Unknown Table,則會自動無視。
@yookoala yookoala force-pushed the database-build-fix branch from 4c569e7 to b73989a Compare January 7, 2015 14:23
@yookoala
Copy link
Author

這些是相對簡單的修訂,希望能夠採用。如有需要修改,請告知,會盡快修正。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant